@Karen Wilson yeah magnetometer interference from co-located RF hardware is a real and annoying problem — you're right to suspect the other modules first before blaming the environment.
The BLE front-end is probably your bigger culprit here compared to the GNSS. BLE transmission bursts create rapid current spikes that generate magnetic field transients, and if your modules are stacked close together those can absolutely swamp a mag sensor, especially during continuous data streaming when the radio is firing constantly. GNSS is more of a steady-state low-level noise contributor by comparison.
Quickest way to isolate it: disable the BLE streaming temporarily and just run GNSS fix while logging magnetometer output, then flip it — kill GNSS and run BLE only — and compare the drift patterns. If one of them is clearly the culprit you'll see it immediately in the variance. If drift disappears when both radios are idle but your physical location hasn't changed, that confirms it's EM from the modules and not environmental.
If that confirms the interference, the practical fixes are physical separation (even a few centimeters of distance makes a meaningful difference with near-field EM), orienting the sensors module so the mag sensor is as far from the RF front-ends as your enclosure allows, and making sure you're doing a proper hard/soft iron calibration routine in your firmware with the other modules actually running — calibrating in a quiet RF environment and then deploying in a noisy one will always give you drift because the bias field changes.