Is this closer to what you were expecting?
I would say that the ordering and unspecific instructions are the problem, but I've tried with and without a For Each condition and it functions pretty much equally (I left it in though). I've placed the destroy event before and after the creation events, same thing.
So I changed it from the object itself spawning the new objects to simply creating them with the system create object action. what you can do with spawn object from object you can do with system create object, just better imo. I think there may be an issue with how c2 picks objects that are created by other objects. However, I'm just guessing.