GPS speeds can vary greatly depending on conditions. Gps always has a degree of error on your position and that can vary depending on cloud cover, mountians, building, trees etc. Because of that degree of error it can never 100%accuratly report your speed. Sure it can be close but it can be off by a few mph or more, and be can be off either faster or slower then you are really going. I have had mine tell my im going 5 mph when its sitting still on my desk.
To use a gps to measure speed you really need to sustain that speed over a good distance. If you just get up to speed and read it it can be way off because it can still think you are accelerating. I have had mine tell me my boat is doing over 70 just after i hit top end but if i hold it for a few miles it levels off to closer to my real speed(62). The GPS is closer then a speedo on a boat but far from perfect, but its close enough.