You can fix the resonance issue pretty easily by just taking an EQ plugin, making a super loud boost (like +18 dB ) with a very narrow Q and then changing its frequency until you can hear it really amplifying the problem, and when it's at that frequency, you turn it into a cut instead. Keep in mind that everything sounds pretty stupid when you're boosting it by +18 dB with a very narrow Q, so you're just looking for the things that stand out as particularly bad. Here's a video demonstrating the technique (he's doing it on Pro Tools but you can apply the same technique to any digital audio workstation and any EQ plugin):
You shouldn't think of compression as a tool for making things louder, you can always turn the volume down later if the compressor plugin adds too much volume. Compression just helps you get the dynamics under control so that the volume stays at a more consistent level, which actually makes it easier to get a nice balance between the different elements. Without compression, very dynamic elements like vocals can easily be sometimes too loud and sometimes too quiet at the same time, like you have here, so compression prevents that from happening.
It's a good idea to find some professionally produced song in the same genre that you think sounds good, and then directly compare your mix with that back to back. That way it's pretty easy to tell whether your vocals are too quiet or too loud and you can adjust the levels accordingly until it sounds more or less the same as the pro mix. This is especially useful if your listening equipment isn't very good because it's hard to tell if it sounds good or not on low quality equipment, but it's still pretty easy to tell if it sounds the same or not, and you can usually be pretty confident that if it sounds the same as a pro mix on your system, it'll probably sound pretty good on most systems.