Amount of climbing figures are a can of worms.
For one thing, what constitutes a change of elevation? Is there some threshold below which it doesn't count, or do you add on 6 inches for every speed hump you roll over or a half inch every time you pass out of a worn-off patch of chippings? The smaller the threshold, the larger the amount of elevation change for any given route.
This consideration will affect any method of getting a figure for a day's total ascent.
On top of that, there are potential problems with all methods of getting an ascent reading.
a) Pure GPS.
A GPS takes a measurement every second, and any one reading is only accurate to within 10m or so (about 3x the error in horizontal position). On average the errors cancel out, so if you take enough readings you'll get an accurate height, but you are moving and not necessarily at a constant height so you can't just do that. The figures you get off a GPS will be smoothed to avoid random errors, but over what period? If it's too short, random errors add into the total ascent giving too high a reading, but if it's too long you miss recording low and high points and get too low a reading.
In the end, you don't know the smoothing algorithm, so you don't have a good idea of what the figures mean.
b) Barometric (including some GPS units)
Barometric altimeters give much less short term variation so are pretty accurate over short periods, but are prone to long term drift and so need calibrating before every ride, and during the ride if possible. In good weather (static high pressure), they could vary by only a couple of metres during a full day's ride, but at other times you could find that the height of a fixed point (home) has varied by 100m or more during the ride. If it does vary, you've that much error included in the ascent figure. As well as that, most barometric altimeters are a bit slow to react and may miss the tops of hills or the bottoms of valleys if you go straight back down/up again.
c) From a map.
If you count contours & spot heights on an OS map, you will get a definitive and repeatable answer, but any small climbs of less than 5m (Explorer) or 10m (Landranger) will be disregarded (see my initial point). It's also a manual process that takes a fair while.
If you use an electronic map (Memory Map or whatever), the height figures come from a set of point heights 25m or so apart on a rectangular grid (which have themselves been obtained by interpolating between contours, for UK OS sourced data at least), and the height of any point on the track is obtained by interpolating between points on the grid.
There are at least 4 different sets of available height data which will all give different results for the same track (OS Panorama (open data), OS Profile (paid for), original space shuttle radar, at least one other satellite radar set).
If the track goes somewhere where there isn't a smooth slope, you'll get errors and false climbing, plus there will be errors in track location either via GPS errors or because the road on the map isn't marked in its true location (as they often aren't).
As an example of the differences, back in pre-GPS times, the Elenith 300km audax used to give a climbing figure of 11530ft (3515m), from contour counting, but the AUK website now shows 4727m (from unspecified GPS). The route is pretty much the same as it used to be.
FWIW, I regard contour counts as the "true figure", and use the results from a barometric GPS when I can't be bothered to count (i.e. usually).