Here is a link to a module I created to do this: GitHub - mikebind/SlicerStitchImageVolumes: A 3D Slicer (slicer.org) module for stitching together multiple image volumes into a single larger image volume. The ROI still needs to be created manually because for my workflows it was helpful to be able to cut out large regions of non-patient present in the full scans, but I think this will do everything else you want.
Let me know if you run into problems. It was created a while back, so it initially was set up to use the legacy AnnotationROI objects for the ROI, but I believe it has been updated to work equally well with the newer MarkupsROI objects.