Are you saying Windward is not a commercial product?
Mobile devices often have insane resolutions with very low power GPUs on tiny screens. Whether the game runs at 4k or 720p on a 5 inch screen is not something you can determine without a magnifying glass, and the 720p offers far better performance.
Anyway, all that aside, I was suggesting forcing the Screen.SetResolution to
the desired resolution. Ie: if your game should be 1920x1080, set it to exactly that. Basically force Unity to use the resolution it should already be using. That's what I suggested.
Debug.Log(Screen.width + "x" + Screen.height);
Screen.SetResolution(Screen.width, Screen.height, true);
As for "fixing" it, the issue is in Unity, not in NGUI -- as evidenced by the fact that it used to work fine in previous versions of Unity. I can only suggest work-arounds for it.
P.S. It's a known Unity issue that also affects Unity's built-in UI exactly the same way:
http://issuetracker.unity3d.com/issues/button-position-is-wrong-on-fullscreen-player-which-aspect-ratio-is-different-then-monitors