I create a new SQL login. set it's default db and then, in user mapping, assign it to the db_datareader role. The login now appears in the db under the correct role. going back into the server level properties, user mapping page shows no mappings, but if I click on the server entry on this page the mapping then appears and the detail is correct.
I'm not sure I follow... Here you create a login and an associated db user - "I create a new SQL login. set it's default db and then, in user mapping, assign it to the db_datareader role."
I'm assuming that's via the SSMS GUI and you click OK to close it/create the user & login.
Then things get cloudy. Are you just looking at the user list under server logins and not seeing the new user? If so, you may just need to refresh the view. I'm pretty sure it'll refresh and add the new login to the bottom of the login list but I'm normally using a SP1 CU4 patched SSMS 2008 GUI so things could have changed. If you're double-clicking the new login and looking at the server properties you shouldn't see anything other than public because you didn't configure a server role. Database mappings should be correct under the corresponding tab.
Maybe a step by step guide or even screenshots would help here. Do things look correct in sys.server_principals and sys.database_principals?