Hmm, the roles available within the registration form are based on the roles for that portal (not roles for all portals). In this case you would need to actually use the event called 'SQL Event' and do some insert/update statements. There are multiple ways of doing this and it provides the most flexibility but it can also be difficult to implement if you don't know SQL. With a SQL event you could pass all of the values of the field to a stored procedure which would insert or update the roles table as necessary. You wouldn't have to create a stored procedure but it would be easier for testing.
For general testing you could create a SQL event to only fire on initial registration but also fire no matter what (not question/answer specific for firing the event). From there you would do the inserting.
i.e.
Insert Into UserRoles(RoleID, UserID) Values(1, $(UserID))
This would insert the current userID and the roleID number 1 to the userroles table. You could just have one SQL events to do all of your inserting/updating etc... Example:
Insert Into UserRoles(RoleID, UserID) Values(1, $(UserID))
Insert Into UserRoles(RoleID, UserID) Values(2, $(UserID))
Insert Into UserRoles(RoleID, UserID) Values(3, $(UserID))
Hope this helps.
-Chad