I posted this on a watch forum during discussion about elevation accuracy of barometric altimeters vs GPS.
GPS isn't perfect for elevation/altitude.
The GPS is great for horizontal (longitude/latitude) location, but less so for vertical location. The vertical error can be significantly greater than the horizontal error for a number of reasons.
Firstly, the GPS elevations are based on reference ellipsoid map of sea level (commonly the WGS-84), which is a model of sea level, not the actual sea level at a given location. Maps/geometric height are based on a vertical datum tied to the geoid. The difference can cause errors of between -100m to +70m depending on where you are in the world.
Then you have the regular GPS satellite issues. For a good GPS height (3D fix), you need at least one satellite overhead, and the other three or more satellites at the horizon to triangulate the GPS location. The shape of the globe means that for most accurate horizontal fix the satellites are on the horizon. And the higher in elevation you are (the closer to the satellites), the greater the potential inaccuracy.
Even Garmin on it's website states that the GPS satellite heights can be off from map elevations by +/-400 feet, however with units with a barometric altimeter, and importantly proper calibration, the accuracy is down to 10 feet.
In fact, this the pressure altitude vs GPS altitude argument has been regularly debated in sports like hang gliding/paragliding. See here for example:
www.youtube.com/watch?v=NmOyMoKlyPASo to get an more accurate elevation, a unit with barometric altimeter is great, but needs regular accurate calibration to provide accurate results. So your 4-7m elevation drift isn't too bad all things considered. Although using a barometric altimeter on the ocean isn't going to give you better elevation data given the fluctuations in that environment.