This is now fixed and you can check all the roles you want and add the expiration days to any of the roles. This fix is availible in cart v3.05. This was a tough bug to figure out. It turned out the error started happening with in dnn 5.2 and above something was changed in dnn with encrypted cookies or forms authentication. For any other dnn module programmers out there here is what fixed it.
We changed the following code:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, Context.User.Identity.Name, DateTime.Now, DateTime.Now.AddHours(1), false, strRoleNames);
// Encrypt the ticket
string cookieStr = FormsAuthentication.Encrypt(ticket);
// Send the cookie to the client
Response.Cookies["portalroles"].Value = cookieStr;
Response.Cookies["portalroles"].Path = "/";
To this:
//Clear the user's cached/stored role membership, will reload on next page cycle
PortalSecurity.ClearRoles();
DataCache.ClearUserCache(PortalId, UserInfo.Username);