I must say, I only understood maybe 30% of your explanation.. But I see one issue with your code:
In line 71 you are checking "if the doors being overlapped share the same LayerDepthLevel values". But the problem is - if 2 or 3 doors are picked by the parent "is overlapping" event, this condition will only test the first door. And if its LayerDepthLevel is different from Spy.LayerDepthLevel, none of the sub-events will work.
If you need to check if any of the picked doors have the same LayerDepthLevel as in Spy, you need to rewrite this condition:
Doors compare variable LayerDepthLevel=Spy.LayerDepthLevel
Note, that this event will further filter the picked Doors (for example, if 2 doors were picked by overlapping, only 1 door may become picked after comparing LayerDepthLevel)
.
Now, if you need to check that all overlapped doors have the same LayerDepthLevel as Spy, you need to use PickedCount expression. Save Doors.PickedCount in a local variable in event 70, then in event 71 compare Doors.PickedCount with that variable. (event 71 still needs to be rewritten as above)