Try chilling down the drone before the IMU? That seems to help alleviate several problems, and I am not exactly positive why?
After firmware updates, I always refresh my drones calibrations, and place the phantom 3 Pro, into the frost free kitchen fridge for 15-20 minutes. Before removing it, have the RC on, and the Go app ready, open on the IMU calibration page. Replace a warm charged battery in the cold drone, turn it on, and when the camera stops its initial movements, tap the IMU calibration button. I always do a gimbal calibration directly afterwards.
Take it back outside and recalibrate the compass now.
This calibration sequence, with a chilled drone, has helped numerous folks here achieve the goal you want to reach. ;-)
I hope it works for you, and it should. Fingers crossed.
RedHotPoker