QGroundControl Pixhawk 6c x500 V2 and Compass not calibrating

I am having issues getting brand new Holybro X500 V2 and Pixhawk 6c calibrated.
Without having the M8N GPS Module plugged in I can calibrate the compass easily on all axis except when the plane faces down towards ground (front?). I can get this working if I hold the drone slightly offset from ground on a perhaps 30% angle.
Every other axis calibrates fine.

When I plug in the GPS module (with builtin compass) I can’t do the upside down plane or where the plane faces down towards the ground.

I have tried disabling both CAL_MAG0_PRIO and CAL_MAG1_PRIO, but that doesn’t seem to chaneg anything in calibration.

When CAL_MAG1_PRIO is disabled compass works fine in map view, when CAL_MAG0_PRIO is diabled compass moves somewaht slower.

I believe CAL_MAG0_PRIO is internal, and CAL_MAG1_PRIO is external - but they are both labelled “Internal” in CAL_MAXX_ROT.

CAL_MAG1_ID is 0 too - should it be a proper ID.

Any ideas on what I can do next? Starting to think its dodgy hardware…