However, the voltage on all the PORTC pins is between 1.2v and 1.4v. What's going on? Shouldn't they be at 0v potential? I'm powering the PIC from 5v. There is nothing connected to the outputs.
Can you post that scematic ?
One thing i see is that you've selected the HS oscillator in the config word, but i don't see any crystal on the board ?
The HS setting is for a high speed crystal oscillator.
You'll also have to change the config word to set the MCLR/RE3 pin to internal MCLR operation.
This is the reset pin OR RE3. The config word chooses what it will be - if it's set to reset function and left floating like on your scematic the pic will go in and out of reset randomly.
Yes, and according to the datasheet there should also be a bit in the config word called PLLEN allowing you to choose between 500Khz and 16Mhz for the internal oscillator.
You're not calling the init function from the main code.
Also check if the config word makes it into the hex file.
Also , the delay function in hi tech C requires you to define the oscillator speed somehow (forgot the specifics). without this definition the delay code might be way off - for a start, try just setting the outputs high and then enter a endless loop. If the outputs are high when you measure them then you at least know the program has been executed, then move on.