I can see a couple of problems there. There's the picking newly created objects problem and then there's a container picking problem (assuming WallBlueprint is in a container with RoomBlueprint).
I think what you are trying to do is: you create a room and a wall and then you want to pick the newly created room plus all of the previously created walls and check for overlaps. Right?
When you create an object, it is picked in that event and any sub-events but you can't pick it through a condition until the next top-level event (except for pick by UID). So, in the first iteration of the loop you create a room and a wall. They are both picked for the rest of the sub-events. In the second iteration, you create a new room and wall. Now those two are picked. The objects created in the previous iteration of the loop are no longer picked and can't be picked again by conditions (except by UID).
The other problem is that if you pick an object in a container then it picks all the other objects in that container. When you pick a room, its matching wall gets picked and when you pick a wall its matching room is picked. You can't pick them separately. You can't pick just a room from one container instance and the walls from another.