Ok, I just took a look at our code to verify what’s going on. Unfortunately, this is something we can’t really do anything about.
PayPal only allows for a single address to be sent in the checkout request. If guest checkout is used on the PayPal page, then the address that was sent would be used to prepopulate that form.
If we sent the billing address there from Woo’s checkout page, then that address is what would get used in PayPal for shipping, which would not always be correct and could cause frustration for the user, which could result in an abandoned cart. That’s never good, of course.
Hopefully, in most cases that address will be the same anyway. This is actually a recommended practice to avoid fraud. If you do want to allow shipping to an address that differs from billing, though, then the user will need to go ahead and adjust the values on the guest checkout form that PayPal provides.
If that simply won’t work for you then you could always add Payments Pro or REST credit card processing to your PayPal account, and then set that up as an additional gateway option in WooCommerce through our plugin. This would allow people to enter their card details directly on the WooCommerce checkout page without any redirect to PayPal at all.
So then you’d still have the PayPal option for those people, and the credit card option for people not paying with PayPal.
Let me know if you have any questions about any of that.