So Ive been singing for a while and for the most part have good range and technique.

The only problem Im having is tuning. But not all the time.

I can always sing in tune in my upper register. (from the bottom line in trebble clef and up)
but have trouble in my lower register. I also have trouble with dissonant melodies like Opeth.

Ive also recently discovered that I have trouble singing songs without the hearing the recording. Which means im good at matching pitch but not finding it.

I was wondering if you guys had any tips to work out these issues?

Im also a guy if that helps at all.
You'll have to practice your scales with a piano or guitar then, singing along and matching the pitch to that. Major and minor scales and arpeggios are useful for this sort of thing.

As for "you can only sing when the song is playing", let's do a little experiment. Play the song through your headphones, not too loud, and sing along with the song. Record your vocals. Listen to your vocals, and see if there is a difference.
And no, Guitar Hero will not help. Even on expert. Really.