Welcome to Webmaster World Mr. Sheppard! No doubt a member or two will be along to try to help you with your dilemma. The most likely one lives across the pond from you on the left side of the same rock as me. Probably still asleep right now too, or just pouring first cuppa java.
Offhand I know there is a bug in one of the mobile devices that is characteristic of item #1 you described above, I just can't remember which one and I don't have it recorded anywhere. I do have a snippet of code here that I was experimenting with so I'll just throw it into the mix, it might help for others assessing this.
<meta name="viewport" content="height=device-height, width=device-width, minimum-scale=1.0, user-scalable=yes|no" />
I also noticed you are using frames. That might be complicating things too.
I think that is what I used to overcome the issue you are experiencing but I don't have a mobile device handy to test it on (I still use one of those "beam me up Scotty" types of mobile devices).