This is an open sourced place that I made to wrap a gui to multiple surfaces.
The basics of how it works is it will create a clip the size of the surface gui, then copies the first frame and puts it as the position UDim2.new(0,0,0,0), then the next one is pushed over the amount of pixels as the X of the last surface gui, and it keeps going for each inputted screen gui.
I haven’t quite figured out how to handle adding/removing instances, but will properly do property changes, even if two instances have the same name.
Edit: Video of place: