Also, meine Erfahrungen:
Schiefstehen der Motoren erkennt man sehr schnell daran, dass er sich nur sehr träge gegen oder mit dem Uhrzeigersinn gieren lässt.
Wenn er im Loiter wegdriftet liegt es ziemlich sicher am Kompass. Gerade dann, wenn er immer nach "Osten" oder so wegwill, obwohl man ihn dreht. Möglicherweise stimmt hier die Kompassorientation nicht?
Wenn du ein APM hast und keine 3.1.5 sondern 3.2rc irgendwas, dann kannst du dich eh nichtmehr per Terminal verbinden. Aber trotzdem ein guter Ansatz um es zu erkennen. Ansonsten würde ich ganz bewusst nochmal alles von vorne machen.
Also am besten erstmal Arduplane oder Rover aufspielen. Dann dort im Terminal "erase und reset". Danach Arducopter 3.1.5 und den Wizzard so ordentlich es geht durchlaufen. Das meine ich sowohl beim kalibrieren des ACCs (ich mache das auf meinem Tisch, bei dem ich weiß, dass er in Wage ist. Unter der Tischplatte kann man den Copter so wunderbar auf dem Kopf ausrichten). Rechts und Links mache ich anhand von Schrauben, die ich auf die Tischplatte auflege. Der Rest der Centerplatte eckt dann an der Vorderseite der Tischplatte an, die ja in Waage ist. Andernfalls nimm dir eine zweite Person, die auf die Tastatur drückt und dir selber eine Wasserwaage.
Kompass würde ich draussen machen. Allerdings sollte sich auch im Haus kalibrierter Kompass nicht so extrem äußern, dass dein Copter stur in eine richtung wegwill, sondern eher im Toilet Bowl. Ich mache es mittlerweile auch draussen, hatte aber selbst als ich es anfangs unerfahrenerweise drinnen gemacht habe nie ein verhalten wie du.
Schau erstmal dass er im Stabilize gut fliegt. Das tut er glaube ich ja. Anschließend teste althold. Wenn er da die Höhe hält, würde ich die nächsten Modi testen. Vorher erstmal dafür sorgen, dass Althold funktioniert. Das sollte es aber mit den StandardPIDs, wenn dein Baro abgeklebt ist und du keine übermäßigen Vibrationen hast.
Kannst du mal ein Bild von deinem Kompass machen, also wie er verbaut ist?