These are always loaded questions to me.
Are you asking for advice on learning C?
or
learning on how to program the specific microcontroller (and using the cross compiler)?
I'm guessing that a lot of the times that I see this in the eevblog forums the answer would be: "both"
My opinion: wrong answer.
My suggestion: learn even just the fundamentals of C first. Even more desirable would be to learn some basic programming methodologies first, but I'm guessing the odds of that ever happening are just about non-existent.
Once you understand C and are comfortable with it, learning the specifics of how to deal with the microcontroller as well as the nuances of any of the cross-compiler quirks becomes much much more manageable. At that point, walking through the tutorials that come with the specific tools and you'll be board with twiddling LEDs in no time.
Off the top of my head I don't recall which compiler is installed on my system for PIC right now. Might even be the Hi-tech one. But I do know that it came with a tutorial and after having the tools installed I had a handle on things in just one short evening. Trying to learn microcontrollers, a new programming language, and the specifics of the tools in hand is a pretty daunting task. Grossly inefficient way to learn, ESPECIALLY if you're lacking knowledge in more than just one of those areas. Need to break it down and get a decent handle on the parts you can first before trying to combine everything in one pot.