Well, yes and no. The include is being processed before any Page object exists, so any attempt at registering anything fails miserably. However, I've ended up putting a Literal into the include, and then running the code on the Literal's OnLoad, so the Page object actually exists and all that.
Utterly hackish, but it'll work until we get the time to redo the whole bloody thing.
Oh, but I have another question.
Right now I'm having to build my solution every time I want to test anything in the codebehind- I've never had to do that before, just changing the .cs file is enough. Having to recompile every time is a pain- is there some setting change I need to do, or am I screwed?