The mag calibration looks strange:
<field name="mag_bias" values="35.0716,126.082,1.74313"/>
<field name="mag_transform" values="0.833983,0,0,0,0.930531,0,0,0,39.6811"/>
Especially the last mag_transform value at 39, should be around a 1 value like others.
When you calibrate the Mag, you should move around all axis.
Maybe try the Mag dance ?
You can validate the 5 first steps, do the dance and save last step.