Quick reply, as I don't have much time.
1) put a condition that touching zone isn't touching sprite.
the X is right click and invert which means opposite of what condition is saying.
See image attached -
[attachment=2:1yi0gpd9][/attachment:1yi0gpd9]
touch X(is not) touching sprite then do this...
2) Make one main event sheet and include all event sheets into it.
[attachment=1:1yi0gpd9][/attachment:1yi0gpd9]
3) I think I understand what you are saying, but I'm getting old and not as sharp as I wish I was.
You can do this, and there are number guys who have more knowledge about this than me.
I usually hardcode everything. Or, use invisible textboxes with data that I can retrieve. Or on startup save data into instance variables.
THen use foreach sprite.... bla bla bla
look system > loops >
Each sprite has unique id, and each sprite can have instance variables that you can save data to that is unique to that sprite.
I used something similiar to tutorial using custom paths using waypoints. Don't have link offhand.
It uses instance variable to store waypoints.
Here is capx from tutorial:
[attachment=0:1yi0gpd9][/attachment:1yi0gpd9]
Hope that helps a bit
Edit: look at this demonstrates sort of what I am saying.