Thanks for raising this. To answer your questions:
- The DisableOnCopy switch disables the original migration job item for a user if you're copying users from an existing batch to a new batch by using the UserIds or Users parameters. Reference https://docs.microsoft.com/en-us/powershell/module/exchange/move-and-migration/new-migrationbatch?view=exchange-ps
- This error MigrationUserMovedToAnotherBatchException is normal once we disable the migration user from the source batch and copied to another one.
- Removal of the Migration User from the Source Batch must be done manually, at least for the moment. This way we have a record of having moved them around. If you use PowerShell, then yes, as you mentioned, you need to specify an unique identifier of the migration user (remove-migrationUser -identity id) otherwise you get into this error "The operation couldn’t be performed because ” matches multiple entries.". It is maybe easier to remove the migration user from GUI.