Have you checked the cushions?
Sometimes in an older boat, if diesel has been spilled on the engine or in the bilges, the foam cushions will pick up a smell, and then even if you solve the leak problem or clean the engine, the cushions maintain the "diesel fuel smell". In my 1980 33 Hunter I had that problem. My solution was to tighten all the fittings and make sure nothing was leaking, use a good engine cleaner on the engine and drain pan under the engine (note, the pan under the engine is NOT a bilge area to be pumped out to the water...It is to gather oil and diesel and let you get it without putting it in the water. When I used the cleaner, I washed with a lot of water, but pumped from the drain pan into a 5 gallon bucket. Did this twice, then took all the cushions and fabric items off the boat, removed the covers, washed them, the washed the cushions with a lot of water, soap, and sunshine...ended up by spraying all the carpet on the sides of the boat with Fabreeze after cleaning, used Fabreeze on the cushions when putting them back together, and I also keep the regular bilge area clean with soap and water (you can pump this out to the outside, unless is has oil in it for some reason). I did this a few years ago and all I do now is clean the wood with lemon oil a couple of times a year and spray the carpet with Lysol to get rid of mold in the spring anduse the Fabreeze on the fabric...Boat has no diesel smell or old boat smell...secret is getting it clean the first time.