I've run into a similar problem and might have a fix just for you.
If I'm understanding correctly, you're spawning new instances and want to grab only the one spawned?
Create a global variable (or with an array, store the "int(Object.UID)" to that, a suggestion if you've learned arrays yet), and right after the new object is created, set the global variable to:
int(<ObjectName>.UID)
i.e:
int(Tent.UID)
If you do this right after a new instance is spawned (such as when you tell C2 to spawn one), it will pick the UID of the newly spawned object.
In your other events, set an extra condition along the others to pick the UID of the newly spawned object (the one being selected with the mouse? I'm trying to understand your event logic so mind my attempt to help somewhat here), except with that, set the picked UID's value to the global variable name.
Here's a visual example of what I mean: