Edit: @Unbekannter:
Du benutzt ja ganz schön viele Variablen... 😉
Versuch sonst mal, die Werte der Variablen herauszukriegen und anhand dieser Werte den Rechenweg für den Winkel zu rekonstruieren, vielleicht werden sie ja falsch gesetzt.
Andere Möglichkeit: Du befindest dich in einem Interior mit einem NorthMarker, sodass der Winkel zwar richtig gesetzt wird, der Kompass sich aber am Marker orientiert und deswegen in eine andere Richtung zeigt.