I question the reliability of tuners when it comes to calculating "actual" MPH based on revolutions per mile.
I installed 245/45-17 wheels and tires (I replaced 15" factory wheels) and in order to get an accurate Rev per Mile figure I went to Tire Dimensions Made Simple - Discount Tire
I input 245/45-17 and it said I was at 785 revs per mile.
When I input 785 into my SCT tuner my speedometer was off by a significant amount when compared to GPS (I detected 16 satellites, but was only was using 11 satellites at the time).
Through trial and error, I ended up setting my tuner to 815 revs per mile before the speedometer and the GPS agreed with each other. At 95-100 MPH on the interstate, my speedometer is accurate within 1 mph.
Discount Tire's calculator is WAY WAY off... or my SCT Tuner is WAY WAY off. Either way, I was dealing with serious inaccuracy.
What I learned from this is that you may have aftermarket gears which would throw off the speedo as you suggested, or, the other alternative is that your (and mine as well) GPS is wrong.