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.