From what I understand Gmail doesn\'t accept CSS blocks in the head at all, which is why I have been adding a bunch of inline CSS to my email template to make it work.
I experienced similar layout problems when sending email newsletters. The solution was to use tables to position things properly. It's dated, but I think it was the only way to make things look the way they should.