Why don't you try a good cleaning and lubrication of the speedometer drive cable.
Chances are good, that it's never been lubed since it left the factory .
My speedometer needle was bouncing around until I did this .
I used alcohol as a cleaning agent, and a light air tool oil as the lubricant .
The method I used to clean the drive cable, was to remove the cable from the speedometer, get a heavy grade plastic bag, cut a corner out of it, place the cable into the hole, fold up the bag and place a small ty-wrap around the cable to get a liquid proof seal.
Get a paper clamp type 'paper clip' fold one corner of the bag over, I use a popsicle stick to get a bit of stiffness to the area, and hang it with a piece of string from something overhead in the garage .
Remove the cable from the transmission, chuck the drive cable into a cordless drill.
Fill the plastic bag with a few ounces of alcohol, and turn the drill motor on, with a drip pan underneath, and let the alcohol flow down the cable.
Usually takes 4-5 times to get the cable clean .
Put a few ounces of light oil in the plastic bag, and turn the drill on until the oil comes out the lower end .