The difference between GPS altitude and FL is one of the issues causing problems
GPS altitude will always differ from the FL because the latter is just referred to 1013mb and cannot indicate any real altitude.
GPS altitude is the only way to make anticollision work, because one cannot rely on the pilot setting (or even having) the right QNH.