Hi Nick, first of all I suggest you post your songs in the songs forum here at cakewalk. it's a great community for getting feedback on your mixes.
I'm currently at work so I'm listening to this on $5 headphones and a soundmax soundcard, and my environment isn't the best for critiquing. having said that, the mix isn't bad. but I'll address your specific concerns below.
when you say you think it's "flat" - exactly what do you mean by that? and you have a contradiction in your statements; making a track more "dynamic" and cannot be accomplished by adding heavy compression. heavy compression and limiting will reduce dynamics, not enhance them.
you say that your mixes are "flat" and that the bass, drum and vocal aren't punching thru. and I agree with that for this mix - for this genre you really want some punchy bass and kick and you want the vocal to come thru.
what I suggest is that you don't try to do that with compression because you'll never accomplish THOSE tasks with just compression. but you work on EQ for each of those tracks. you need to boost the bass in the median frequency range that it is using with a medium sharp Q, then cut the bass in a frequency where you will be boosting the kick. in other words, give the kick a boost for example (this is not necssarily correct for your song - I don't have the tracks in front of me or an EQ or a spectrum analyzer) at about 75Hz, cut it a little at about 300Hz and give it a little bit of boost for extra punch at around 6kHz.
then high shelve the bass starting at about 80Hz and below, give it a bump at 200-300Hz and then an extra little bump at around 3kHz.
add a compressor just on the bass track with a ration of 3 or 4:1 with a short attack and short decay.
now you need to also roll off all of the low end of ALL your tracks except bass and kick at around 60Hz.
then for the vocal - give it a good boost in the midrange with a wide Q (usually around 2k), roll off the low end completely and bump it a little in the 5-6kHz for some extra sizzle.
add a compressor to the vocal track just for it's own compression. use some vocal compression settings dependent on the vocalists. if the vocalists are very dynamic and didn't work the mic much, then you'll need a low threshold and fast attack.
I suggest adding a "drum bus" if you don't already have one and route all of the drum sounds to it and compress all of them with one compressor.
then you'll need a compressor and/or limiter on the master bus to tie it all together. but be careful you don't hit the settings of the song where you get a "pumping" from the compressor itself.
check out my website for some more helpful info on EQ, compression, recording techniques and other help.