The US government GPS system has a capability called
selective availability, which introduced a cryptographically random error. Evidently it worked unlike I thought and each GPS gets the same amount of error, though that error cycles or something to that effect. The important thing is that they turned this OFF in 2000, so I'm wrong about that, and GPS is probably not that bad for testing your speedo.
That said, from what I understand,
civilian receivers can only get a "coarse" signal, which samples ten times slower than the military "precise" signal. Though it seems that this error introduced by the sampling rate is only 3 meters if you're standing still. And looking at some GPS chipsets, it seems like they only do 4-10 samples per second. Most serial devices (of which a GPS chipset might be) run at 9600 baud (1200 bytes/sec), so 10 samples/sec would mean each packet is at most 120 bytes, which seems plausible.
On the way to work, I tried this out: At 55 MPH, my speedo and my GPS indicate 55 MPH. At 65 MPH, my GPS indicates 66 MPH. At 70 MPH, my GPS indicates 71 MPH. So I think it might be safe to say that the faster you go, the less accurate your GPS will report your speed - it can't increase its sampling rate, even though you are moving more feet per second.
If there's a measuring block for current speed (there must be if Climatronic can show it), it's probably a better idea to monitor that and adjust the needle accordingly. Once those are matched up, tuning the impulse number should get it to reality, which should really be measured with something that can read wheel speed.