Grade calculations on GPS tracks are, in general, not very accurate. This is mostly due to errors in the elevation dimension, compounded by errors in 2D position.
Believe it or not, we already do some amount of smoothing to get more accurate results. It was even worse before.
The grade should not necessary increase as you progress on a climb. The actual elevation number has nothing to do with it. Climbs can get less steep as they go on, right?
Also, grade is defined with respect to 2d distance, not terrain distance. Rise/run.
All that said, I'd like to make grade numbers more useful/accurate, too. Perhaps it's time for an option to turn a more aggressive smoothing algorithm on.