have you replaced the speed sensor? I replaced mine a while back due to an odd issue. Mine was located ontop of the pumpkin. it was pretty inexpensive.
My speedo is fast while I'm under 40-45 MPH. If I want to go 35, I need to have the guauge at 39. If I want to go 45, I need to have the gauge at 46-47ish. It trues-up at 65MPH and stays true afterwards. Not really a big deal, but really got me confused early on when I was driving around the city...everyone pissed and tearing around me!
Mine: '98 Ranger XLT 3.0L SuperCab w/ manual 4x4 "Off Road" 193k miles
Wife: '07 Mitsubishi Outlander LS AWD 3.0L 128k miles
My 3.0 puts out 150HP...hers puts 220HP...something is wrong here!
Future Restoration: '77 Chevy 2WD K5 Blazer