For the record, I prefer switches as well - I almost never write a script without them.
But it's not that they're ignored, exactly... it's more like what VarsityPuppet said - how you declare the objects matters even when it shouldn't (or it seems like it shouldn't, anyway). When I declare objects inside a case, after spawning them in another case, sometimes the game just doesn't recognize them. Sometimes I've switched to ifs and that worked, although I've had other problems with ifs. Sometimes I've decided to just not declare a variable and used GetObjectByTag over and over, and that worked. Sometimes I've split it into two different scripts, both with their own switches, and that
worked. I <3 subroutines too, by the way. Sometimes I've used a subroutine and that worked!