How to relocate paypal button gateway on checkout page in woocommerce

Have you tried this?

E.g. the paypal button function name is woo_custom_paypal_button.

Then add action like this into your function.php or specific plugin:

add_action( 'woocommerce_checkout_before_customer_details', 'woo_custom_paypal_button' );

Or if there’s something that’s already displayed there, and you might want to remove it, first find the function name and then try like this:

remove_action( 'woocommerce_checkout_before_customer_details', 'woo_function_to_remove' );
add_action( 'woocommerce_checkout_before_customer_details', 'woo_custom_paypal_button');

Update

I tried this code and worked in my case:

add_action( 'wp_loaded', 'x_relocate_paypal_button' );
function x_relocate_paypal_button() {
    $cls = new WC_Gateway_PPEC_With_SPB;
    add_action( 'woocommerce_checkout_before_customer_details', array( $cls, 'display_paypal_button' ), 20 );
}

Just replace the woocommerce_checkout_before_customer_details hook to relocate to another position.
You can find more visual hook guide on checkout page on this article.