AK09916 Won't Calibrate for Custom FC

I have previously flown multiple of my custom FCs which use the AK09916 as its internal magnetometer (integrated with the ICM-20948). The problem now is that both are crashing and having extremely unstable flights the next day. This was accompanied with a new message that said check mag field: xxx, max 875, min 185. Also, check mag field: xy diff > 100. This was with the same implementation in the drone, and thus I wouldn’t think the mag field would change abruptly enough to cause the drone to be unable to fly anymore.

The compass is unable to achieve calibration, so for those flights I used my gps to do the large vehicle magcalc. After that, it was able to fly. Now, after doing the same thing it is unable to fly. I am unable to produce dataflash logs as I am purely using internal flash on the chip, and I haven’t found anything regarding how to do that.

For that ive tried setting compass_auto_rot = 0. After doing so the magnetometer did calibrate, but the z value was flipped (was negative in the northern hemisphere). Additionally, the compass reading was completely off from a pixhawk I was using as a control, as well as an iphone compass.

So my questions are: How is large vehicle magcalc interacting with magnetometer, what is it doing? Has there been previous problems with the AK09916 in calibrating it? Could it be the AHRS_Orientation? Any ideas for setting up internal flash for datalog storage, firmware, and parameter storage?

Here is the hw def file.