Thanks for the replies!
Here's a pic of the dash, with key on, engine off.
I have replaced the speedometer with a brand new one. And same thing. The cluster gauge with oil, temp etc all works.
I replaced the RPM gauge with Stargazer, so the boat is usable, just hate having one gauge with a dead needle. And I could put the RPM gauge back in to replace the speedometer gauge, but then I lose the little LCD screen that shows the depth, hours etc.
I do also have the 2 rocker buttons by the ignition switch (one to change the LCD display info, and one to slightly adjust the speedo needle up or down if it's slightly off)
I wonder if those buttons could somehow disable or set the speed needle to zero, or disable it somehow by holding it down?
Maybe I played with it one day and accidently did something?