Sort by Custom Post Type (Multiple Loop)

Did you post the correct name for the taxonomy template? I think it should be ‘ taxonomy-listing_category.php. See Custom_Taxonomies_display

Or are you including it some other way?

With new WP_Query you’re not using the default query which has the query variables for the taxonomy and term. You can however add the taxonomy and it’s term back to the queries to have it only return posts that have the term from the taxonomy assigned to it.

See the tax_query parameter

<?php
$current_term = get_query_var( 'term' );
$args = array(
    'post_type' => 'premium_listing',
    'orderby'   => 'rand',
    'tax_query' => array(
        array(
            'taxonomy' => 'listing_category',
            'field'    => 'slug',
            'terms'    => $current_term ,
        )
    )
);
$the_query = new WP_Query( $args );
?>

<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) :     $the_query->the_post(); ?>
<?php the_title(); ?>
<?php
endwhile;
wp_reset_postdata();
else: ?>
<?php get_template_part( 'inc/posts/post-404' );?>
<?php endif; ?>

<?php   $args = array(
    'post_type'     => 'free_listings',
    'post_per_page' => 1,
    'orderby'       => 'rand',
    'tax_query'     => array(
        array(
            'taxonomy' => 'listing_category',
            'field'    => 'slug',
            'terms'    => $current_term ,
        )
    )
);
$the_query = new WP_Query( $args );?>

<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) :     $the_query->the_post(); ?>
<?php the_title() ;?>
<?php
endwhile;
wp_reset_postdata();
else: ?>
<p>Sorry, there are no posts to display</p>
<?php endif; ?>