How to create a profile page for specfic / custom user role members?

You noted that you are using custom post types.

To see if that is the problem:

  1. Create a normal “post” for each user (not a custom post type)
  2. See if their pages suddenly show up.

If so, then more than likely your author page is not set up to show show custom posts.

To fix that, you might use something like the following in your funtions.php file (or alter the query on the authors page):

function my_show_special_posts_on_author( WP_Query $query ) {
    # Make sure you are only altering the query on the author page
    if ( $query->is_author() && $query->is_main_query() && !is_admin() ) {
        # Grab the current post types to be shown
        $types_to_show = $query->get('post_type');
        $types_to_add = array( 'custom_post_type_1', 'custom_post_type_2' );
        if ( is_array($types_to_show) ) {
            # Already showing an array of types, add yours if not already included
            foreach ( $types_to_add as $post_type ) {
               if ( !in_array($post_type, $types_to_show) ) {
                  $types_to_show[] = $post_type;
               }
            }
        } else if ( empty($types_to_show) ) {
            # Strange. Not showing any types. Add yours anywise.
            $types_to_show = $types_to_add;
        } else {
            # A single one as a string, add it to your types to add then overwrite types to show
            $types_to_add[] = $types_to_show;
            $types_to_show = $types_to_add;
        }
        $query->set('post_type', $types_to_show);
    }
}
add_action('pre_get_posts', 'my_show_special_posts_on_author');

Be sure to adjust the line $types_to_add = array( ... );

That should force your custom post types to show.