Did you have to convert your scripts to fish? Or is there an automated way?
Longer scripts get the Python treatment or a Go application.
You can run bash scripts from fish.
For sourcing, often it makes sense to use direnv to automatically load variables. -- For "just source this one time", in the worst case you can run a bash shell, source that, then run a fish shell.