First of all, the ''user assignment'' travels with a project, so if you ''remove'' and ''restore'' a project, the assigned users list comes with it.
Second, to change a domain used by a project, you must ''remove'' it (and possibly move the project directory to a location below the NEW domain folder int he repository folders, then edit the project's DBID.xml file to point to it correctly), then ''restore'' the project and indicate the NEW Domain.
In QC, ''domains'' are really just an organizational layer.
In Site Admin, you can CREATE or RESTORE a project into a specific named domain and the Site Admin as well as end users can find various projects organized by ''domain'' names.
Behind the scenes, as you CREATE projects in a specific domain, QC creates the project's repository folder under the respective ''domain'' folder.
IN reality, QC does not ''require'' the project repository to be located under any particular ''domain'' folder (when migrating projects from other server, for instance), but it is best practice to locate them appropriately in various domain folders.
As for assigning users the access to a given project, this is done project-by-project or user-by-user.
Project-by-project -- done by clicking on a project in Site Admin and going to the ''Project Users'' tab. the ''Copy from another project'' option under ''add'' might be what you are looking for.
Setup the user list for a representative project under a certain domain and copy that user list across to projects in other domains as needed.
You can confirm projects for a given user on the ''Site Users'' tab in Site Admin, this can be organized by domain if desired.