Fireballs are not actually multiplying. The problem is that you cast multiple fireballs at once. You don't notice that because they are moving on top of each other and look like one sprite, but sometimes they collide with the wall at slightly different angles and separate into several sprites.
"Caster Animation frame=15" condition lasts longer than one frame, that's why multiple fireballs are spawned.
You need to add "System Trigger once" condition to your event #5.
Use Debug Mode (Ctrl-F4), you'll have a much better understanding of what's going on in your game.
Also I suggest adding "Destroy outside layout" behavior to the fireball.
And make the same collision polygon for all fireball frames - it will make collisions more predictable and accurate.