Jeremy,
It’s definitely a bug in your code. It’s caused by your usage of the “display.screenOriginY” property which provides the y component of the top-left coordinate of the screen in “content coordinates”. Since your app is set up to be letterboxed, this property will provide a negative y value if a letterbox bar is shown at the top of the screen… which will be the case for the vast majority of Android devices. Your code is not compensating for this negative value, causing it to place your text objects higher up on the screen than you expect.
It’s easy to prove. Just print the screen origin to the log. You’ll see that it’s a negative value.
print("Screen Origin Y = " … tostring(display.screenOriginY))
The reason you’re not seeing this issue on an iPhone 5 is because your app is running in backward compatibility mode. In order for your app to support “tall mode”, you need to add a “Default-568@2x.png” to your app folder as documented in the link below. That will cause your app to use the entire screen, force Corona to letterbox the app itself (which iOS was doing for you in backward compatibility mode), and then you’ll see this same issue happening on your iPhone 5.
http://docs.coronalabs.com/daily/guide/distribution/buildSettings/index.html#launch-images