Some thoughts that, I think, haven't been mentioned.
Perhaps someone in the vast internet/pilot community has hacked into their Ping, figured out, and corrected whatever it is that's causing the problem. I have no idea where to start looking, but someone may.
Although it seems obvious, maybe there's something in the Ping, or iFly setup that will fix this problem. Since the Ping is getting the information from the ADS-B broadcast, maybe it's reporting the altitudes as one thing (AGL, MSL, Pressure, etc.) and iFly has a setting that will convert that value to the correct one.