I actually solved the problem (I should've posted it here, I apologise).
It appears that webkit (and Gecko for that matter) were interpreting the entire document as javascript... I'm not entirely sure why but when I looked at the DOM structure I notices that that was indeed what it was doing. Why it only threw a parse error for the DOCTYPE definition I'm not sure. I removed some scripts from the bottom of my document and put them in the <head> and now it works fine. A bit strange but oh well.