Assuming these are not contained databases, you need to worry about the logins (server level), not the users (database level). Contained users will be transferred automatically without difficulty.
Manually creating a login with the same name on the other server is not good enough - the SID will not match.
Robert Davis has written a post that describes how to generate the login scripts with the right SID and the right password hash. This is what you need to run on each of the replicas:
(Also see the comment thread on this answer.)
In order to just script all of the logins on the local server, change the stored procedure by commenting out this section (and the
End that goes with it):
--If Not Exists (Select 1 From sys.server_principals
-- Where name = @LoginName)
(There are other, similar
IF NOT EXISTS sections you'll want to comment out in order to get roles and permissions.)
Then call the stored procedure with hard-coded
@debug = 1. This will print out
CREATE LOGIN commands with the password hash and you can pick the ones you need and run those commands on the replicas.
Jonathan Kehayias wrote an SSMS add-in that handles all of the uncontained objects (don't forget about things like jobs), but I don't know if it has been maintained for newer versions of SSMS: