Membership configuration confusion

Honestly, I had this working this way at one time and now can not be sure I should have ever had it working. I need some confirmation on what Membership options I should use for this set up.

I just need the Membership Plugin to manage what users see. A company buys access to a sub-site that we build for them with a set amount of our produced training content. The manager creates the users and assigns their User Role (we created custom roles with User Role editor). The user role relates to their job functions. A single employee might have two roles (primary job and then a fill in job when others are out). All that can be set up at the User Profile settings.

Now, comes the bit where I am having issues. What we did to control access to content is create Membership Access Levels for each job(user) role. A positive rule identified the categories the user should see. The Access level is then associated with the User Role under the Advanced tab. The rules have no other complication.

When a user logs in they see the content based on the categories associated with their Membership Level which is connected to their User Role (both primary and any secondary roles). We never had to assign anything under membership options just set the User Roles. There are no subscriptions or complex settings beyond that.

A few months ago when we tested it out everything worked perfectly that way. Now, it won't allow access to anything if the user logs in with their role set the same way as before they only see Protected Content messages.

We can "fix it" by going to the membership settings and assigning the access levels directly to each user. This requires a second step we don't want to deal with for setup.

In rereading the intent of the Associated Role feature I am not even sure it should. That appears to work in the other direction by assigning the role to a user when they register for membership.

Should the membership level work just by assigning the user role as we were doing it before? If not, is there an easier way to accomplish this?