Almost definitely the problem is that you start it immediately with TCallBg which checks while(!Obj_IsDeleted(GetEnemyBossSceneObjectID())). In a Single or Plural, the boss scene object will exist before your script even starts (because it's created in the "default" stage script), but in a Stage script it won't exist until you start a plural script where you make the scene object. So the while loop condition fails immediately and your background is never created.
You can fix this by changing TCallBg to something else that makes sense for the stage. How it's set up right now (draw a normal bg until a spell starts, then draw the spell bg until it stops, and loop as long as the boss exists) is clearly meant for a boss fight, but if you actually had stuff before or after the boss, this doesn't make sense anymore.
Because your MainLoop already does the checking for an existing boss scene and spell (and puts the result in bSpell), you can actually make it simpler:
task TCallBg{
loop{
TNormalBackground;
while(bSpell==false){ yield; }
TSpellBackground;
while(bSpell==true){ yield; }
}
}
(For anyone else reading, there are reasons why you shouldn't quite do it this way, and there are better ways to set this up, but for the sake of this answer and simplicity it's better off ignoring all that)