Trading. Yes. But I'd go further than waiting for situations where you need to trade because those situations may be too much for you and him to handle, as you experienced. In other words, create some actual training exercises. In the meantime, physically preventing him from getting into the sink or garbage is a must. (that will get you to do your dishes right away) LOL.
It's important when starting this changing-of-his-mind to start with lower value things and gradually work up to higher value...not only the things he has, but the higher value thing you're trading him for... Make the thing you're trading better than what you need him to give up, but just a little better...proptionate graduations. This is a game.
In addition, I'd stop feeding him his food in a bowl for a while. Just hand feed. Ask him to do something and then give him a handful of kibble right out of your hand. And then again and again.
Down the road, you can use a bowl, but drop in a handful while he sits and waits for a couple of seconds. Then give your release word, "Okay" or whatever you use and let him eat. The second he finishes that handful, walk away. Come right back and drop in another handful. Again, wait until he finishes and walk away. Come right back, repeat. Soon, he'll be begging you to come back, close to his bowl because you've shown him that you're the one who provides his food.
You can then hold the bowl on your lap and drop in a handful. Keep the supply within your reach, but hopefully, not his. lol. Keep your hand ON THE BOWL. The minute you take your hand off the bowl, you've relinquished it to his possession. As long as your hand is on the bowl, it's yours. He should recognize this. One handful, then another. However, if at any time you feel unsafe with these exercises, don't do them. Get professional help.
Get him use to the idea that you supply all the good stuff and the acquisition of good things is contingent on his behavior. No free toys. Keep them put away until you pick a out a play time and then ask him for a sit or down, come, whatever and then hand him a toy. Give him things that he likes, but not things that he is madly in love with. Go to him and take something like a special treat. Show him the treat and as he drops the toy into your outstretched hand, say, "give" and give him the treat. Give him back the toy. Repeat.
Along with this kind of practice, you could even set up pretend, random things for him to find. I say "pretend" but they're real things or food but they're something YOU have picked out that isn't terribly high value. Random, meaning different locations in and out of the house, different kinds of valuable things...sometimes in a bag maybe or in the corner of a room. In other words, make it so he will generalize "give" to any context or location.
"Leave it" is a good exercise too to teach. Make a game where you hold treats in both hands, closed fists with one behind your back. Let him nuzzle and poke, prod to try and get the treat. Say nothing. Do nothing. Just wait. Eventually, he'll back off a little bit to assess the situation as to why you're not giving him what's in your hand. The second he backs his head away, say, "Leave it" and bring your hidden hand around and open your fist for him to get the treat. Do this several times a day for a few reps. Don't use the cue to elicit the behavior until you're quite sure he's getting onto the game. Then try it out ahead of time and see if that will make him back off. If it doesn't, you need to go back to more practice with simultaneously saying the cue while he backs off.
Then try putting a treat on the floor near you. Be VERY ready to cover it with your foot if he goes for it. It must not happen that he beats you to it. Have a treat in your hand also, hidden. Try this first without the verbal cue a few times. When he finds he can't get to it, he'll hesitate to see what's up. When he does, say, "leave it" and furnish the treat from your hand and praise. Then start trying your cue to elicit the behavior in that context. Gradually work up some distance. Don't make him wait for more than just a second or two at first. Make it so he can succeed. What you're showing him is that by NOT taking the treat, he WILL get the treat. It WILL be given to him by YOU, not by his own grabbing of it.
With the furniture, if he doesn't have issues with that, he won't necessarily generalize his food guarding to that. Dogs don't generalize very much. And if he doesn't care about that, it isn't likely he will start to care. But, it's still a very good idea to practice placement cues with any dog. Teach him to get on with a cue. YOu can pat the couch and give a verbal cue and mildly praise. You don't have to praise or give a treat for that. The couch is the reward. Then coax him off with a cue and be all fun and lively. Then give him a treat for that. Getting off earns a treat. If you must, lure for 2 or 3 times...no more. If you're going to take a walk or do something he likes...maybe dinner time and he happens to be on the couch, when he gets off on his own, hurry and get in your cue, "off." Praise, treat or just give him what you were going to give him that he likes. Associate getting off or moving over with something good.
Don't use punishment or scolding if he resource guards. This will make him even more defensive of his stuff and "hostile." Try to set up his environment so he won't need to. And in the meantime, practice those exercises every day a few times. Plus general NILIF. Only I wouldn't be so rigid that some things can't be free. I think that is too stressful.