Well i dont understand the question. I have no idea what you exactly want.
I notice a question (from 30 may) that implies that nothing is placed on run time. I assume this is still true, that everything is set up in the layout. I have no idea if there are objects destroyed and/or created. How can i, you dont share a .capx ?
So lets walk trough a few scenarios.
1/ You want to go back to the basic set up, but want to keep global variables as score ...etc. Use 'Restart layout'.
2/ You want to go back to the basic set up, and reset the global variables. Use 'Restart layout' + 'Reset global variables'
3/ Things get created and placed in a random way on layout startup. And you want to go back to to exact the same set up. Assuming that later on objects are created that dont belong to the basic setup. Give each object a instance text variable 'backup' and a instance boolean 'base'. Set base to true for the objects that you randomly create in the setup. Set 'backup' to self.AsJSON during the creation of the setup.
When you want to go back to the randomly created setup .... loop trough all objects. If 'base' = false then destroy that object, else use 'Set from JSON' to 'backup'.
Option 1 should be enough though. Explain why it is not what you need ?