Roles have both a role name and a display name, once a role is created the role name never changes, if you edit it only the display name changes. This feature makes it possible to localize the system role names without breaking anything, ie we can't have people really renaming the Administrators role. So if you really need to change the underlying role name for a custom role the only way is to delete it and then re-create it. At the time of creation the role name and the display name are both the same. The role name is what is really used for role checks and the display name is only what is displayed.
Also when you add a user to a new role, it does not become active until the user logs out and logs in again so that he gets a new role cookie.
Hopefully those 2 factors shed some light on the problem. I can make it trim any white space from the end of the name when creating roles, I'll look into that for the next release.
Hope it helps,