If being on the water is most important, I would suggest Almond Tree, it is an older restaurant. The food is good, service is average. E
Evita's is very good food and service (Italian). It is not on the water but over looks Ocho Rios.
On the informal side, Whalers is located on Fisherman's Beach and is a great idea for seafood. The only concern you may have is, Whalers is located in a local environment and the nighttime air may be permeated with the scent of marijuana from locals hanging out at one of the bars located on the beach.