I seem to be having a similar problem. I'm using an iPhone 6 and iPad 4th ten to test on. I only have a few sprites and buttons added to my scene and I'm using a flexible layout with adjust to dpi selected.
To troubleshoot I have been printing the screen height and width, an onscreen UIButton height and width and the UIRoot Scale.
The scene looks perfect in the editor, but as g1i1ch said, on the actual device the UI looks zoomed and is not pixel perfect. The printed UIRoot scale: print(UIRoot.transform.scale) is a little odd in each case, is that statement correct?
Example of the readouts on the editor:
UIRoot Scale: (0.0, 0.0, 0.0)
Screen height: 705
Screen width: 397
Button height: 70
Button width: 180
Here are the readouts on the iPhone 6:
UIRoot Scale: (0.0, 0.0, 0.0)
Screen height: 1136
Screen width: 640
Button height: 70
Button width: 180
Here are the readouts on the iPad 4th gen:
UIRoot Scale: (0.0, 0.0, 0.0)
Screen height: 2048
Screen width: 1536
Button height: 70
Button width: 180
The UIButtons size seems intact, but physically, it almost takes up the entire screen width on the iPhone.
If there is anything else you can think of trying, or anything else I should print to get more information, please do not hesitate to ask. I'm using NGUI 3.7.3