It’s unusual for a vehicle speedo to read the actual speed as they are always calibrated to over read to stop you speeding and then suing the manufacturer. The only vehicle I had that read accurately was an ex- police Deauville and they would use that to catch speeders etc. Changing the wheels or tyres can have an effect but, if the overall diameter is correct then the vehicle speedo will probably over read by 5% or greater. The gps speed reading is more accurate as they have no incentive to make it over read. The gps is also recalculating the speed very frequently, and using multiple satellites so the fact that you’re travelling up or down hill doesn’t really make any real difference.
How accurate is the gps? Find a measured mile and try it against it.
Where a gps ALWAYS lies is in the time that it quotes to make the specified trip!!!