Some of the data used initially would have been Baro, but it appears that Baro data was lost at some point in the climb and the later data was GEO only. This could indicate the transponder had detected conflict with the Air Data, and as in the case of AF447 had rejected it to prevent causing potential TCAS conflict problems.
I am not familiar with the Airbus implementation of ADS-B or Mode S input/output. Is there logic that will decide which altitude to discard -- ADC or GPS/IRU? Is the logic part of the ADS or Mode S spec, or are implementations different between mfgrs and fleets?