I would recommend starting with this post AUV & ROV Localization
Optical flow is hard, an off the shelf solution for optical flow is probably not going to work. I would love to see the data you get back if you do try it.
The weather vane will not include the offset that your vehicle is currently experiencing. making it not particularly useful, you can find the velocity of the water relative to the vehicle, but that tells you no information about the motion of the vehicle.
One microphone is not enough to determine bearing to an acoustic source, and there will be some pretty major aberrations from acoustic shadowing and refraction in the hull, which you will have to accurately model if you want to use your sensors in the vehicle. I am biased so anyone who disagrees with this please do link to other sources but probably the best sources for information, on developing a hydrophone array for localization of an acoustic source, are RoboSub teams.
Ultimately localization underwater on a budget is an unsolved problem. Personally I would recommend starting with determining why you need localization and figuring out a workaround, because you will probably spend more time trying to hack together a localization system than working around it. Even with all the proper equipment implementation is still quite a hurdle. (#DVLproblems)
I don’t mean all this to just discourage you, by all means try for yourself, just sharing a little bit of insight from years of experience and thinking about the problem.