At this point, your best option is to eliminate Canada. The dead can't hold a grudge in this game, so all the grievances you got will go away and, once the denounce period is over, you can resume diplomatic relations with other Civs. However, you'll get grievances with everyone if you eliminate a Civ. To avoid that, you can loyalty flip their last city or, if Canada have a city they conquered themselves (unlikely, because Canada), you can leave it as the last city, then liberate it. If you don't want to eliminate Canada, you can go out liberating cities that were conquered by the AI, preferably City-States, which gives you a grievances reduction. You can also try to make peace with Canada and let the grievances decay naturally, which is a good option early, but that won't work so well in later eras.
To prevent that, before you go out conquering, declare friendships and alliances with every Civ that's friendly towards you and that you don't want your relationship with them to go sour. Friends and allies can't denounce nor declare war on each other, so it's a good way to prevent this kind of situation. Don't forget to renew it on the same turn it ends. You should also invite them to join your war. Liberate cities any time you get a chance, to reduce grievances, or eliminate your enemy, either through loyalty or liberation, as mentioned before. If you intend to leave your enemy alive and try to resume friendly relations with them after the did is done, conquer one more city than you intend to keep, then return it in the peace deal, which removes a -18 relationship penalty that you get with a Civ after you conquer their cities. You can also trade a city to them in a normal trade (any city) or liberate one of their cities that was captured by another civ. Any of those options will remove the penalty.
The grievances system is quite forgiven, if you take the time to figure out how it works. It's possible to stay friendly with most Civs while you conquer the world, if you care to do so.