I know the air/fuel separator like skidim sells works well for keeping fuel from sloshing out the vent when the tank is full. WOrked great on my '96 but I never had a problem with water coming in. Not sure if it's designed to keep water from coming in though.
They're $80 so I'd verify it will work first.
Could you put a loop or high point in the vent hose? Cheap solution?
'06 X2 MCX
"I understand why some people may not want to do this the way I have recommended but I can't understand the death grip some people have on a toilet plunger with a hose fitting." -JimN