The correct answer, although late...
The GPS sensor is for location only. The altitude information comes from databases, which is an estimation usually.
The only way to measure with high accuracy the elevation change is to have a barometric sensor.
The barometric sensor is very accurate and blazing fast.
Even so, the apps do not rely on barometer, but on databases, because there aren't many watches or devices with barometer.
So, the answer to OP is that he had estimated data about elevation, which can be very poor.