Es por la propia Física del GPS.
Los satélites de GPS no son más que relojes atómicos que anuncian la hora, y gracias a la diferencia en los tiempos se puede calcular por triangulación la posición de un punto con bastante precisión. Considerando las diferentes correcciones relativistas se puede saber qué distancia nos separa de cada uno de los satélites, y por geometría elemental, determinar la posición sobre la Tierra. La razón de que en altitud sea mayor el error es por pura geometría. Para triangular una posición en horizontal basta con que haya más de 3 satélites a la vista con independencia de cual sea su azimut o su altura.
En el caso de la altura tenemos que tener más de un satélite sobre nuestras cabezas y algún satélite muy cerca del horizonte para poder observar que no estamos pegados a la superficie y dar la medición en altura. Si esto no es así, la medida será poco parecida a la realidad. Además no siempre hay visibilidad óptica entre nuestro punto y el satélite que esté en ese momento "amaneciendo" o "anocheciendo".
Aparte, la versión civil del GPS tiene errores en la posición del orden de 10 metros o más, introducidos a propósito para evitar que se haga uso de él con malos propósitos.
Así que un error en la altura de 30 o 50 metros es normal. Para saber la altura con precisión, se usa un altímetro.
