Heya there!
First of all, a good mix always starts from good tracks/tracking. You can turn good tracks into a shit but you can't turn badly tracked/played tracks into something good. In this track especially the drums are quite "wandering". The tempo changes many times, speeding and slowing.. speeding and slowing.. and so on. And the overall drumming isn't "tight" enough. It is extremely hard to build something solid over a rhythm that isn't solid. Next time pay a bit more attention to tracking. Song's basics and foundtion are the drums (especially kick/snare) and bass. If they don't keep it together, it doesn't matter what you "pile on top". It will always come rumbling down
Oh well, enough of that
About the mixing. First of all you have to have a good solid low end to build onto. So I would recommend to start from kick and bass. Make them work together. Remove the boxyness from the kick by cutting deeply around 200hz, EQ it until it sounds nice. Then work the bass guitar. As I said, make the work together (just tweak around with EQ/volumes until it starts to sound groovy hehe)
At the moment guitar is fighting with the lead and back vox. Pan that guitar out from their way!
Backing vocals are too loud. Make them a bit "thinner" and pan tem a bit more. By thinner I mean the effect what happens when you hear anyone singing a bit further way. The lower frequency range gets thinned. Just basic physics. The closer the sound is the more meat it has. By cutting the low end you create the illusion those backing vocals being further (like back there huh hehe).
Compress the lead vocal more, it has too much "jumpiness" in it.
Take the snare a bit more forward (increase volume) and compress it a bit to give it some more "punch".
Finally get that harsh sound out from those overheads. Try placing hipass filter around 700hz and then cut with moderate Q with around 3-7khz (try wherever it works best).
Hope this helps. Good luck with the mix!