Given that OP says that none of the transaction have been broadcast, and I can certainly not find any of them in a handful of mempools I have just checked, would it not be easier for him to just use
abandontransaction on the first one, which will abandon all three transactions and allow the inputs to respent directly from Core. He can then just create and broadcast new transactions the usual way without having to manually script anything.
OP, see here for more information:
https://bitcoincore.org/en/doc/0.21.0/rpc/wallet/abandontransaction/Tried that also, but the transaction is already in the local mempool of the node, so the transaction cannot be abandoned unless I would clear the local mempool. I have no clue to do that without bringing the whole BTCPay server offline and somehow delete the mempool from memory and/or disk. Sounds like a risky operation and I don't feel confident enough to do such.