Are these SQL logins? If so, then chances are that the mapping between SQL logins and database users is out-of-sync between the principal and mirror.
I've had issues with this myself in the past though I've been lucky enough that I only ever cared about one specific user.
You should try the following function on the mirror:
EXEC sp_change_users_login 'update_one', @login, @login
To reset the mapping between login @login and database user @login.
If this doesn't work, try the 'Auto_fix' approach:
EXEC sp_change_users_login 'Auto_Fix', @login, NULL, @password
This should create the database user and map it accordingly if it doesn't already exist.
This happens with SQL logins because the the database server will generate SIDs for these logins. These SIDs are what tie a database user to a login. Even though the same login may exist on two different servers, their SIDs may be different, and thus you experience "lost" credentials, if you will. This does not happen for windows accounts, because SQL Server will use the Windows SID of the account itself when creating the associated login.
Best Answer
Yes. One server can have multiple instances installed at the same time (even of different versions, like 2008 and 2012) as long as their "name" is different (Which you set at install).
Basically this allows you to have multiple different installations at one server.