You forgot to start a new query.
And if you dont use have post on your custom query, you will get the main current query, in your case is your single.
$args = array(
'post_type' => 'crew',
'posts_per_page' => 10
);
$your_custom_query = new WP_Query( $args ); // is that you forgot
// The Loop
if ( $your_custom_query->have_posts() ) :
while ( $your_custom_query->have_posts() ) : $your_custom_query->the_post();
// Do Stuff
endwhile;
endif;
i dont know what is wp_pagenavi()
use paginate_links()
$big = 999999999; // need an unlikely integer
$pagination_args = array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $your_custom_query->max_num_pages,
'type' => 'plain',
'prev_text' => 'Prev',
'next_text' => 'Next'
);
echo( paginate_links( $pagination_args ) );
And finish by a reset
wp_reset_postdata();