replaced speedometer driven gear with recommended 40 tooth and still not accurate...

That's a waste of time. The tire manufacturer's numbers are close enough. A 225/60R15 is 25.6" diameter. Use that number. You won't be able to measure closer than +/- 1/4" anyways. Which is less than 1%.
Took the car out for a ride this morning with the gps just because. Everything was still the same. Accurate up till 25mph, and speedometer needle bouncing a little bit under 10mph. And the speedometer reading much higher than the gps after going faster 25-30mph and up. I don't know what happened but now the speedometer reading is right on the money at all speeds and matches the gps reading. The needle no longer bounces at 10mph and under. Smooth and accurate. I have no idea why. Thanks again for the help.