The straight answer is to not use the multiplayer sync action when changing layouts, and handle object syncing manually via messaging. This works best for peers being able to wander across layouts locally, you wouldn't necessarily need to sync objects for everyone in the first place. Messages and rooms persist across layouts.
Alternatively, depending on what you're using layouts for, you might be able to design around using layouts in the first place. Are you using them for memory management? Is everyone changing layouts with the host or separately?
Another idea (I have not tried this, but it might be the cleanest way) is to use a new signaling room, while staying connected to the signaling server. The host will indicate to peers to leave room, and the new destination room. The host waits until everyone has left, then leaves and creates the new room, on the new layout at the previously designated room id. Peers wait until the room exists before joining (host gets in first) via request room list and on room list. PeerID's should persist, as well as global variables and objects on the host. Well basically everything on the host persists. This is similar to host migration on lost connection, but a little simpler, since the host remains the same.
A further option is to not use the multiplayer plugin, and to use a server/client design with a third party tool, which isn't really the answer to your question, but can solve a lot of these types of problems.