That looks like it should work. It's possible that in a couple of cases, you used IfValue instead of IfVariable. For intance, the broom part. You said ifValue -> <var:pl:broom> when you could have said onPrintCountUnderFlow -> Player -> IfVariable -> broom
I'm too lazy to check, but <var:pl:firing> is a variable replacer, right?
I may be wrong about the loop working. Why don't you try the same EXACT loop on some other, single event and see if it works there. If it does, then your problem is with the variables. If it doesn't, then the loop itself has a problem.