You can remove the filter that adds the select fields to the checkout. This would allow you to not show it for certain cases. You might need to do some javascript to show/hide as well depending on how it is loaded for you.
This could be a starting point:
add_action( 'woocommerce_init', function() {
if ( class_exists( 'WC_Address_Book' ) ) {
$show_address_book_on_checkout = true;
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
// TODO: do something to determine what methods you want it to show for.
if ( $something ) {
$show_address_book_on_checkout = false
}
if ( ! $show_address_book_on_checkout ) {
// Remove the address select field from the checkout page.
remove_filter( 'woocommerce_checkout_fields', array( WC_Address_Book::get_instance(), 'checkout_address_select_field' ), 9999, 1 );
}
}
} );