Integrated Marvelmind with PIXHAWK

Hi guys ! I’m trying to integrated Marvelmind with PIXHAWK as a fake GPS system. The accuracy of Marvelmind is great (more or less as they said, 2cm), however, when i configure Marvelmind (NMEA protocol) and PIXHAWK (GPS port) as they said in the Manual (links: the performance of the copter is not quite good.

The test I have made is:
1.move copter along north-south
2.move copter like a circle
3.move copter like eight pattern
All tests are made manually by hand in case to check the performance of EKF3 in PIXHAWK. (Log are list in link1)

The result is
1.Performance of Marvelmind is great in dashboard, except sometimes is orange, it is always solid blue.
2. When the copter moves along a line or like a circle, the EKF performance is acceptable (lower than 10 cm), but when it moves like eight pattern, i always got a big compass variance and the maximum error is around 43.8 cm. This performance is useless as I want to perform a indoor hover.

What I have tried is
1.Change EK3_ACC_M_NSE and EK3_POSNE_M_NSE to try different weight between IMU and Marvelmind measurement, but the results are more or less the same.
2.Change data update frequency in Marvelmind dashboard, but nothing change.
3.Change EK3_GPS_TYPE, try all the options, but still nothing happened.
4.As i always has BAD AHRS on HUD of mission planner even i calibrated all sensors several times, i disabled the COMPASS in mission planner, then the EKF performance is quite good (Error below 10 cm, see log 2) !

What i suspect is when the copter is maneuver at a high yaw speed, maybe the big difference between PIXHAWK north and Marvelmind north cause the big compass variance in EKF and induce the big position error.

Does someone has experience about how to solve this problem or has some knowledge about how PIXHAWK use NMEA protocol in EKF. It would be very helpful for me to locate the reason.

Thank you all in advance !

Log links are here:
1.Test with COMPASS
2.Test without COMPASS