WGS84 to MSL and opposite

I think there is a problem with the way you are thinking about the whole thing.

To sum up: You use Cesium points which are from a Digital Elevation Model. Those points are expressed in WGS84 and the height representation is ellipsoidal height

GPS gives you height which is ellipsoidal height

You have geoid height from the EGM2008 model

So when you compare CESIUM points with GPS points measured near the ground surface, you should have the same height. This is not the case and your GPS data seems to look like altitude. So you should look at your GPS computation (according to the software you use, it might give you coordinates height in altitude if it's compute its background) and at the ellipsoid you choose for you "Cartographic" object in Cesium, it might not be WGS84

From one of those two data, you can get the geoid height (which is an altitude) with the formula Ho = He - N where N is the geoid height above ellipsoid given by EGM2008 for example

One other thing, you use data with a lot of accuracy difference and resolution difference:

  • The accuracy of the EGM2008 is at 5 centimeters on the sea and 50 centimeters on the grounds and it has a bad spatial resolution (near 10km).

  • For CESIUM, the spatial resolution goes from 2 to 30 meters. I didn't find any information about the accuracy but according to the data source of the DEM, I would say that the accuracy is near 1 meter.

  • The accuracy of your GPS data can vary from a few centimeters to a few meters according to your computation mode (Basic, differential, PPP, etc...)