The login already has an account under a different user name

This means that the login [R2Server\AAOUser] is already mapped to a user in that database. Or, in other words, another database user is using this login. You can see what database user is using your login with the following query:

use YourDB
go
SELECT su.name as DatabaseUser
FROM sys.sysusers su
join sys.syslogins sl on sl.sid = su.sid
where sl.name = 'test' -- login

PS: a version of the script that doesn't use the compatibility views:

Select sp.name as LoginName, sp.type_desc as LoginType,
    dp.name as DBUser, dp.type_desc as UserType
from sys.server_principals sp
join sys.database_principals dp on dp.sid = sp.sid
where sp.name = 'test' -- your login

It's a 'metadata thing' ...

Sometimes the database user gets 'corrupted' over the course of whatever is going on in that DB. (I've seen similar behavior if the DB gets restored, and the roles in the restored copy differ from what the one you overlaid contained. This is why I tried below, which fixed the problem for me.)

  1. Open up the Login properties in SSMS --> (Security | Logins | failing UserID | Properties | User Mapping). You'll probably see the DB's already checked and has Roles assigned (like perfectly normal).

  2. Note the permissions on the DB giving the error, just for reference.

  3. Uncheck that DB and save the login.
  4. Now re-run your query to add the Login/Role into the target DB. It should work just fine.