soooo many things going here.
Different devices may report differnt elevation gains just down to the algorithm used when capturing the data.
Barometric elevation is better than GPS elevation data, especially when the weather is settled.
Barometric elevation has its own issues when you have rapidly changing air pressure, for example when a low pressure system rolls in from the atlantic. The longer the ride the more exposed to the change in atmospheric pressure. Barometric altimeters are often used in Alpine climbing and its common practice to calibrate them frequently during the course of a climb when at known spot heights (lift stations, summits, huts etc)
Websites will give difefrent results as well depending on the amount of smoothing they apply to the data, agressive smoothing will tend to flatten the data.
Websites will often apply "elevation corrections" based on survey data, the accuracy/resolution of that data can vary greatly depending where in the world you are. sometime these may be better than the data captured by the device, particulary if it does not have a barometric altimeter, sometimes that correction might be worse.
My advice, stick with a single device, preferably one with a baromatric altimeter. Dont compare different websites. Do look to see if that website is applying corrections, you may be able to overide its settings.
For example Strava recognises my Garmin Fenix as having a barometric altimeter and uses the elevation data from the Fenix but Strava does not recognise my Garmin Oregon 600 as having a barometric altimeter (even though it does),so it automatically applies corrections. So both devices might report the same elevation gain (or thereabouts) on their screens at the end of the ride but when loaded into Strava suddenly the Oregon might be as much as 50% lower than the Fenix.
also worth noting that the weather over the last few months has involved some pretty dramtic pressure drops that would have an impact on the accuracy of a barometric altimeter over time.