"Fixing and cleaning..."
You can't get rid of any odor till you find and eliminate the source...so don't even try to combine cleaning and odor elimination in the same step. Remove stinky old hoses, cushions and anything else that you want to get rid of BEFORE you clean. Use only detergent and water to clean...forget bleach. It doesn't clean anything, just makes dirt a lighter color and doesn't get rid of odors permanently anyway.
There's a great product made right your neck of the woods that totally--and permanently--removes any odor...bilge, hoses, even smoke and diesel...it's called PureAyre.
PureAyre After you've found and removed all the sources of odors, put it in garden pump spray jug (a trigger sprayer would wear out your hand) and lightly coat every surface, nook and cranny. Don't rinse, just let it dry with all hatches open for at least 24 hours. Your boat will smell like fresh air and sunshine...if it doesn't, you haven't found and removed all the sources of your odors. Wish I'd had PureAyre when I restored a 20 yr "floating bag lady" that smelled like a combination of brewery and a swamp when I bought her.