I tested to make sure - using a non-existent template should just result in a (more or less) empty string.
If you haven't already, maybe try this code:
PHP Code:
$templatevalues['banner_rotator'] = "Test Banner Rotator";
vB_Template::preRegister('header', $templatevalues);
I'm not really an expert on these kinds of thing, but based on what I've seen before I'm kind of getting a feeling like it's a problem other than what you're doing, like maybe a php configuration issue or something wrong with the vb installation. Is this a new install of vb? Did you try running "Suspect File Versions" under Maintenance in the adminCP?