Since you are both removing and adding to the same predicate, you have to use two mutation blocks, which can be done in a single operation.
mutation Update( $id: [ID!], $roleId: ID!, $addOrgs: [OrganisationRef!], $removeOrgs: [OrganisationRef!] ) {
first: updateUser( input: {
filter: { id: $id },
remove: { tenantOf: $removeOrgs },
set: {
role: {
id: $roleId
}
}
}) { numUids }
second: updateUser( input: {
filter: { id: $id },
set: {
tenantOf: $orgs
}
}) { numUids }
}