category.php displays ALL posts instead of just those with the current category

Your problem is your use of query_posts(). Don’t use query_posts(), ever.

Filter pre_get_posts instead. For example:

function wpse74093_filter_pre_get_posts( $query ) {
    // First, make sure we target only the main query
    if ( is_main_query() ) {
        // Target the category index archive,
        // and only for the category "client-x"
        if ( is_category( 'client-x' ) ) {
            // Set the post-type to "project"
            $query->set( 'post-type', 'project' );
        }
    }
    return $query;
}
add_action( 'pre_get_posts', 'wpse74093_filter_pre_get_posts' );

I’m assuming the appropriate category term is client-x, based on the category archive index URL in your question. If that’s not the right category, replace as appropriate.