I think I may know the answer to this already but I thought I would ask as I'm out of options.
Your MoveAircraft() method works perfectly in FSX - unfortunately, the results I'm getting in X-Plane using XPUIPC are rather different.
I'm using the following test code in c#:
FsLatitude lat = new FsLatitude(51.464943d);
FsLongitude lon = new FsLongitude(-0.434046d);
FsLatLonPoint newPos = new FsLatLonPoint(lat, lon);
bool onGround = false;
double heading = 180;
double ias = 100;
FsAltitude altitude = FsAltitude.FromFeet(3000);
double pitch = 0.00;
double bank = 0;
FSUIPCConnection.MoveAircraft(newPos, false, altitude, heading, pitch, bank, ias, true);
The aircraft ends up at 30,000ft and in a different hemisphere(!) with a Lat/Lon of 46°.60s / 1°.80w with no pausing.
Appreciate you only probably only support FSUIPC but just wondered if you new anything obvious that may be causing X-Plane to misinterpret the request?