Custom posts not paginating on archive page and returning 404

Your error is likely get_query_var('paged') should be get_query_var('page').

However…

You should avoid calling query_posts in the template, it is a waste of resources, as you’re just discarding the original query which has already happened.

Hook pre_get_posts to instead alter the query before it happens:

function wpa60728_pre_get_posts( $query ) {
    if ( 'bvdirectory' == get_post_type() && is_main_query() )
        $query->set( 'posts_per_page', 2 );
}

add_action( 'pre_get_posts', 'wpa60728_pre_get_posts' );