+1 on the barometric altimeters being the most accurate. GPS-only elevation is typically way off just because of the physics of the signals and the geometry of the triangulation from the satellites. Still, you're going to have some variation. They'll be the most accurate if you start from a known elevation that you've programmed into your GPS, and let the signal settle for 20 minutes or so before starting out. If you have a lot of steep grades, then one-second recording will help with elevation accuracy as well.
Speed comes from what you put behind you. - Judi Ketteler