there are a couple of ways i thought of from the top of my head that could fix your problem.
- saving item states in nested dictionaries
you could basically make a dictionary of every room and in the room dictionary slot make a nested dictionary for the items, and finally add an array for every item (for the position and extra values etc)
then, everytime you change rooms, call some function deletes all previous items and instances items depending on which room it is, what item it is, etc. (i cant make a mockup i got no time sorry)
2 . changing your whole room-changing system overall
you could make it so that instead of the rooms being seperate scenes that changes every room switch, you could just instance all of the rooms in one node and showing the current room and hiding every other room.
and in every room node, make the items a child of the room node so you dont have to worry about the positioning and the visibility.
this is a simpler approach, but may impact performace.