Yes, it is possible that this scenario is best solved by using Groups instead of a separate user pool for each one of the role.
You can check on this link: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html
When you open this link to find out how to transfer users to a new pool (for example: you want to create a new user pool in order to change how your users log in), then there isn't any built-in way to do this. However, there are solutions that you can be built in order to migrate users, for that you can check this link: https://aws.amazon.com/blogs/mobile/migrating-users-to-amazon-cognito-user-pools/
Create your new user pool.
Modify your client to do the following:
On a failed sign in with new user pool, try to sign in with old user pool.
If existing user pool sign-in is successful, use the username and password that was submitted to the existing sign in to create a user on the new user pool.
Possibly do something to remove the user from the old user pool or mark them as migrated.
Take a look at this flowchart here, this might help:
You can export users and import them to a new user pool with a CSV file, but your users need to change their password for that.