Create top-level folder in from user's My Drive, at the same level as the folder tree we want to copy
Move (drag and drop) the externally owned folders to the top-level folder we just created, we have the mapping within the tree logged in our spreadsheet
Move using GAM single files not owned by our users but are within our owned folders to our temporary folder
Move everything in the original source folder tree to the shared drive (drag & drop)
Use GAM to copy (not move) the remaining folders and files to the correct destination folders in the Shared Drive
Use GAM to copy the single files to the appropriate folder in the Shared Drive (using the data that we've got with the file id's)
Once that’s done, the files will be owned by the Shared Drive and we’ll be free to move them around.