the low reading can be fixed by taking the needle off carefully and putting it back on at slghtly above 0 if it's just a bit off [like consistently about 5mph low]
the odometer problem is broken plastc tab[s] on the tenths or ones wheel, maybe others - the tenths wheel has a little nerd that hits the ones wheel when it comes around to zero, the ones wheel then trips the tens when it passes zero, and so on - need to replace some or all of the odo wheels
yes there are places that will rebuild yours -
check at the bottom of this links page Bill