Display specific post categories to specific user roles

Yes, this is all possible, but your question is a bit too broad for this site. 🙂

You may want to look into membership plugins which already have these types of capabilities, or you can build your own. If you choose to build your own, it’s easiest to create a custom post type for each role. So for example, you’ll have an “agent” CPT and a “manager” CPT, and you’ll use map_meta_cap to create custom capabilities for those post types. This way, you can create your own “agent” role and “manager” role, and each one will only be able to read that specific post type. And since all other users do not have “read” capability for that post type, they won’t be able to read (or comment). (You’ll also need to set up your theme in a way that checks whether the user is logged in – if not, you can either display a message encouraging them to register, or else redirect them straight to the login form. That way outsiders won’t be able to read or comment on these posts either.)