Doug, just a clarification question as I'm not familiar, but do you mean to tell me a GPS cannot tell you which way north is? I would have thought they would have built in compasses at this point.
Strictly speaking, a stationary GPS does not know which direction north is--it only knows were it (the GPS) is located*. However, if you move steadily in any direction, the GPS can infer your (3D) direction of movement from your changing location and your (3D) velocity (from Doppler shifting of the satellite signals) and can thus infer north.
* Strictly speaking a GPS only measures PVT: P=position (3D), V=velocity (=speed and direction, 3D), and T=time (1D) at any instant. Of course it can infer more from the sequence of positions--typical consumer GPSes produce one PVT estimate per second.
Many (eg Garmin 60CSx, 62S), but certainly not all (eg Garmin 60Cx), GPSes include a magnetic field sensor and can use it to determine magnetic north when stationary**. Since they also know where you are, they can apply the local declination (from a table or model) to show you true north. 3D sensors (eg in a 62s) are more accurate than 2D sensors (eg in a 60CSx) because they do not require that the GPS be held exactly level. The batteries in a GPS have magnetic fields and the currents flowing in the GPS wiring also produce magnetic fields so the compass must be recalibrated every time the batteries are changed or disturbed. Generally the magnetic sensor is used when stationary or at low speeds and the direction is taken from one's movement at higher speeds.
** There are GPS compasses that can determine direction without requiring motion, but they require multiple antennas fastened to a rigid structure (eg a boat superstructure or an airframe) and are not practical for hikers. They work by determining the differences in the locations of the antennas using DGPS (differential GPS).
Mechanical compasses are more accurate and do not require calibration (except, perhaps, for resetting the declination setting on compasses that have one) so I personally prefer to use them rather than the GPS magnetic compass when determining or sighting bearings. Mechanical compasses may also have sighting aids such as mirrors.
Additional info:
A GPS can determine the altitude directly, but the errors tend to vary on a short time scale (minutes) while the long-term average (hours) tends to be pretty accurate. Barometric altimeters tend to have small short-term errors and large long-term errors. Some GPSes include a barometric altimeter to get the best of both by using the GPS altitude to continuously calibrate the barometric altimeter. In effect the combination produces a continuously self-calibrating barometric altimeter. (GPS altimeter readings also tend to have 2x to 3x the error range of position--typ 95% probability of being within 20 or 30 meters compared to typ 95% probability of being with 10 meters for position.)
Doug