I fitted a small weatherproof external speaker on the outside of the cockpit bulkhead of my D30 Classic, it’s done 20 years service with no problems and does not get in the way. Just two screws and a hole for the wire needed to install. See https://www.force4.co.uk/department/electronics/vhf/external-speakers, it’s the Shakespeare one, it’s small and off-white so is not visually obtrusive.
A neat solution in YBW Forums is to use a surface transducer speaker – see https://forums.ybw.com/threads/the-right-way-to-do-cockpit-speakers.415231/
Basically a surface transducer speaker is a vibrating actuator that uses a convenient surface as a sounding board. The chap in the article fixed a pair inside the cockpit coamings, no hole to the outside required. They are not expensive, £16.95 each on Amazon. A neat idea. How long they last in a marine environment might be an issue though.
But if you can get a like-for-like replacement speaker that is obviously the best route.