cleos set contract [OPTIONS] account contract-dir [wast-file] [abi-file]
; Gives Error 3090004: missing required authority when BP endpoint is used
Sounds like you are trying to deploy a smart contract with the permissions of an account you don't have on the main net. E.g. trying to deploy a contract at eosio.token
which is something you'll have the permissions to on a test net but wouldn't on the main net.
If you want to deploy you must have the private key to the account you're using. To check you can run cleos get account
look up the public keys which own the account, then check what keys you have in your wallet with cleos wallet keys
If you're trying to deploy for testing purposes, I recommend using the Jungle testnet or your local testnet.
You shouldn't find any difference when deploying to different BP's, they're all meant to do the same job.