Try taking a look at the way glueten implements port forwarding with protonvpn. Hopefully it helps you piece together a script that works for your setup.
https://github.com/qdm12/gluetun/discussions/2686
https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/vpn-port-forwarding.md

The other classic
I'm a big fan of this very specific type of greentext