Custom taxonomy template not working with simple loop. Multiple CPT using the same taxonomy

WP defaults to showing normal native Posts in archives. It won’t automagically pick up which post types you want in your archive.

You will have to adjust main query for it to explain that to it, with something like:

add_action( 'pre_get_posts', function ( WP_Query $query ) {

    if ( $query->is_main_query() && $query->is_tax( 'department' ) ) {
        $query->set( 'post_type', [ 'course', 'faculty', 'library' ] );
    }
} );