pH controller unstable in field measurements

...all over the place (should be around 7.1 pH, and these readings vary between 6.9 and 7.3), and seems to be worse when there's more wind.

7.1 is right in the middle of 6.9 to 7.3. It don't think it's that surprising for a home made device to fluctuate under outdoor windy / wet conditions. As you say you commercial device is reading fine. In my days as an environmental scientist (many moons ago) I worked for years with lots of different types of commercial monitoring systems and even they had their tricky moments under field conditions, so I empathize with your situation.

I would be worried if it was reading say 6 to 6.5 or 7.5 to 8.

Could you average over say 20 seconds of collecting data in your code and report not just the average but also the index of precision?

Have you also tried measuring right in the middle and at other parts of the tank, including at different depths? Can you eliminate the choppy conditions and test if that improves the precision? Could you try a sub-sample of the seawater in a bucket out of the wind? Long shot but- could the tank be reacting with the seawater?

You might try to find out more about the design of the commercial product and see what improvements you could make to your home-made one.
I had better precision from my temperature sensing project by using a co-ax cable for the sensor and shielding the arduino in tin-foil - if that helps XD.

This might be a useful link

A pH probe will only put out about 0.06v per pH unit (Wikipedia). So the difference between pH6.9 and 7.3 is only 0.4 * 0.06 = 0.024v or 24mV. I note that pH circuit designs include an amplifier stage.

EDIT: sorry I missed the bit where you said you'd shielded everything.

Cheers