It seems some specimens have problems with magnetometer. This can't come from magnetized screw because there are dynamic disturbances in magnetometer's readout. There are some applications in the Google Play shop (like
https://play.google.com/store/apps/details?id=com.exatools.sensors) - let's see if this is the case. If so, 8-shape calibration won't bring great accuracy and each time you try, the north will be elsewhere. Even on the south... OS doesn't matter: mine BV6000 started with Android 6 and the compass is equally useless with Android 7. I'm afraid the magnetometer is soldered on the motherboard so no other replacement is possible than entire device (no one sells motherboards as far as I know).