3.4 rc4 should be the latest at the moment - so update is recommended;
always use live calibration method with missionplanner (afaik manual calibration is not supported at the moment;
reboot after EVERY compass calibration - otherwise you get inconsistent compass error;
use compass #2 for better experience;
loiter and automode require compass; stabilize and alt hold mode do not use your compass when flying (it’s documented on ardupilot’s page for all flight modes)
uneven yaw - a toroid could help
overshooting is a PID tuning issue; you could try completing autotune for yaw axis and observe if it makes a difference