It looks like quite a few people are having problems with GPS modes during the last few weeks. We know about the GPS issues, but I'm not sure that's the end of the story.
Example: my HDOP is at 1.55, and still, loiter doesn't hold. After a few seconds (3-10) my tricopter starts heading off to some direction...
Compass/radio/accel are calibrated. GPS is above everything on the copter except FPV antenna. When I throttle up compass delines 0-1 degrees only. STAB and ALT_HOLD work perfectly.