I have had some of these same problems, and done lots of fiddling with all the settings above. Lately, I find things mostly working except that I have to calibrate the compass all the time. Annoying, and I hope still a setting problem.
Maybe it would be worthwhile to put the settings here for geocaching (if you like these, that is):
lock on road = off (Menu, Setup, Map, General icon)
orientation = track up (Menu, Setup, Map, General icon)
North Reference = true (Menu, Setup, Heading)
Switch to compass heading when below = 3m/h (?) (Menu, Setup, Heading)
What should that last one be so the compass works correctly?