I know it may not be exactly what you're looking for but in situations like this I usually try to force the result by creating something like
"on key backspace pressed" -> spawn actions.
That way you can check and see if your character spawns the way you think they're supposed to spawn, and if they don't, you can glean a little insight into where the code is wrong. I'll keep peeking here, though.
This ended up not working either, so after some debugging effort, I realized my previous setup required my character not to be global, but this definitely needs them to be since it only sets their location, not destroy/create per layout. After setting them to global, it did sort of work, but the spawn locations for a couple of the doors are off. I can't figure out why, since in the array in debug and in the code the locations look correct.
door 0 -> room 1 -> door 1 location (works correctly)
door 1 -> room 0 -> door 0 location (works correctly)
door 2 -> room 2 (correct) -> last location of door 2, but in room 2 (incorrect, should be door 3)
door 3 -> room 0 (correct) -> door 0 location (incorrect, should be door 2)