Wait wait wait, i started reading your question, and exactly like the 1st guy who answered i instantly stopped thinking and was like "oh yeah, it's that "frontrunner bot" scam again, the funds are lost anyways", but NO, you did not send any funds to the contract you deployed. You deployed the contracts on the BSC, but transferred the funds on ETH mainnet, so you actually can recover the funds.
Here's an explanation and a step by step guide :
Explanation (you can skip that if you don't care) :
When you deploy a smart contract, its address is computed using your address and the current transaction's nonce, so it is perfectly possible to deploy a contract at the same address on different networks. The contract you deployed on the BSC at address 0xBE30fb3a6b5ec4A36d790ec89BB2460047a6e42e was your 17th transction on that chain (https://bscscan.com/tx/0x7ddfb0f98c4b8a2a25eb95af74eac8aab8bb3a636a8394095d1e356d7188f904, here, you can see the transactions nonce is 16). That means if your 17th transaction on ETH mainnet is a contract deployment, said contract will also be deployed at address 0xBE30fb3a6b5ec4A36d790ec89BB2460047a6e42e, (the address you sent funds to), and from there getting the funds back is trivial. VERY luckily, you happen to have made 16 transactions on ETH mainnet with the address you deployed the scam contract from on the BSC ( here's your last mainnet tx https://etherscan.io/tx/0x06b31d60bafccf098a3a22f0e2ec886c91923dbd0a4081cc1f681ed2ff963e02 (deploying the scam contract again? x') ) . Meaning that your next tx, if it's a contract deployment, will deploy a contract at that address you sent funds to. Now onto the =>
Step by step guide : Double check that your accounts nonce is indeed 16 (in metamask : settings => advanced => customize transaction nonce, that will make the tx s nonce show up in the transaction's confirmation screen, like so (NEVER MODIFY IT UNLESS YOU'RE CERTAIN YOU KNOW WHAT YOU'RE DOING! Here, we're using it for verification purposes only):

Now head over to remix, and deploy this contract (you already know how to deploy a contract, so no screenshots here ^^) :
Contract GetMeMoneyBack {
constructor() {
// Using selfdestruct() is cheaper than simply sending the balance
selfdestruct(payable(msg.sender));
}
}
And boom, you got your money back :) (Remember, if this is not your 17th transaction (i.e., if the nonce is not 16), it WILL NOT WORK)