I don't think it is necessarily a ground issue on the frame. If that was the case, all of your electronics would be going screwy.
You said the water crossing sometimes makes it start working again?
I would check the electrical connection on your rear diff housing. The speed sensor is located there and is read off the tone ring in the diff.
Also, check the electrical connections on the driver side of the tranny, right near the tranny jack dog ear.
Both of those will affect your overhead display, as the computer doesn't know what's going on speed / RPM wise.
Lemme see if I have a few pics for ya.....
Here are the tranny connections on the driver side of the tranny....
Sorry, this is the best pic I have of the rear. The speed sensor connector is located on the front side of the housing, right near the top.
Pull them apart, clean and dry them and apply some dielectric grease to the connections.