Also, there's no \begin{document}... OK. There is, but it is in completely the wrong place...
–
cfrFeb 7 '14 at 4:07

Thanks for the comprehensive rundown @Werner, I ended up getting completely confused trying to mix the code I saw in the "Change \headheight for a \pagestyle" question with the stuff I already had, which as you probably guessed used fancyhdr. I've straightened everything out, and it runs perfectly. Just one final question, with the code as it is now the header on the first page is lower than other header, and I'm not really sure why? Ill update the code in the question.
–
HeisenbugsFeb 7 '14 at 5:25

@Heisenbugs: This may be partially as a result of spurious spaces in your definitions (like \firstpagehead) as well as \AtBeginDocument (see What is the use of percent signs (%) at the end of lines?). However, it's sometimes better to mock up what you want and supply what you've tried, than to try and force something into something that it's not. Perhaps a follow-up question could be just that...
–
WernerFeb 7 '14 at 6:21

@Heisenbugs: Did you notice cfr’s comment? \begin{document} does not belong in a package definition and not even in an environment definition.
–
SperavirFeb 7 '14 at 22:28