Thought I'd share what I found while working with an external compass and PX4.
When configuring the compass in the Mission Planner we have 4 options, 1 is "On Board APM", 1 is "External Compass", 1 is "On Board PX4" and 1 is "Manual". Since I had a external compass I selected that, but compass heading was always wrong. I then select On Board PX4 and that worked. I believe our manual should be updated to make sure others don't make the same mistake.