Is it a particular app that has this issue or all compass apps are the same amount off? If it's a particular app and not all, there may be a setting in the app to adjust the degrees +- 90.
Also, sometimes you have to wave it in the figure 8 motion SEVERAL times to get it calibrated...
I know I was pulling my hair out upgrading the compass app I wrote to UWP... The problem I was seeing is that my Surface, when almost flat, would flip the orientation from the compass' perspective, but not the screen (not sure if by design or something wrong with the internals of my surface).... drove me nuts until I realized it was just the angle I was holding it at. I almost added an option to let users adjust the degrees in 90 degree increments.