Hi,
The 'correct' elevation gain figure is a difficult concept, as you are no doubt noticing. For what it's worth, the original Edge units (205/305) are notorious for exaggerated elevation gain, simply because their elevation readings have a lot of noise that get added up in the *sum* that elevation gain is. I wouldn't trust a 305's numbers without some filtering.
The best I hope for is consistency between tracks from the same unit, or by using the correct elevation using DEM button as you found. But in general Garmin's own units I tend to feel are too low, and TopoFusion's base numbers are a bit too high, unless you correct with DEM, or pull up climbing analysis and look at some of the filtered (e.g. training center preset) values.
Barometric pressure can make a change like that, but the 305 doesn't have a barometer (right?) so it wouldn't be that in this case. The 30 does, but generally a normal ride isn't long enough to notice that effect, IMO.
Hope that helps a bit. It's a bit of a sticky issue.