Disable plugin per user role

You should use the wc_payment_discounts_apply_discount filter.

Try something like the following:

function remove_privato_discounts() { 
    global $woocommerce; 
    get_currentuserinfo(); 
    global $current_user; 
    if ($current_user->ID) { 
        $user_roles = $current_user->roles; 
        $user_role = array_shift($user_roles); 
        if ( $user_role !== 'b2b') { 
            $discount = 0; 
            $woocommerce->cart->discount_total = $discount; 
            return true; // Do not apply discount to privato 
            } 
        } 
        return false; 
    } 
add_filter( 'wc_payment_discounts_apply_discount', 'remove_privato_discounts');