I bet you have a Chevrolet P32 chassis with a 454 engine and 4l80e transmission.
I am having the same problem, but if my truck battery is a little down and I start her with the ac on and headlights turned on I am going 40 mph sitting still.
As the battery charges, the speedo gets more accurate. I am lucky enough to work at what was a GM medium duty dealer, so I have picked the brains of the techs. They think is is a chassis ground problem. The speed sensor sends an ac signal to the pcm module that converts it to a dc signal that is sent to the speedo. I am going to ground everything before going any farther. I am also having dash radio problems which may be related since the dash is all plastic.