Unknown issue with collisions

I'm seeing a lot of rubber stamping based on those Sprites:

This type of app benefits from Generic Event blocks and tables of Sprite Pictures and collision type combinations (Sprite Type A against Sprite Type B)

You can also use dictionaries to hang extra attributes against Sprite components, to age them.

Sample app: Changing Sprite in Blocks - #6 by ABG

Your multiple Clocks can be tricky to juggle.
The new Closures feature of AI2 allows you to store pieces of code into lists, that you could arrange into a schedule to happen in the future, sorted by time and serviced by a single fast Clock. (I have not tried this yet, but it sounds like your app might need this.)

Regarding the spawning on top of other Sprites problem, that might be addressed by checking a prospective spawn site against the Every Sprite block, checking your prospective Sprite's footprint against the footprint of every other Sprite currently Visible before doing the spawn.

This is another case for Generic blocks.