First you need to know what pic you’re going to use. Register organization differs for each pic. I have used three compilers for pic18, and i’d say none is superior to the other. Each have its own weakness, and each have their own advantage. To me, the key is understanding the built-in function of the compiler you’re going to use, and the datasheet of the pic you have in mind. Mplab has its own debugging tools. Mikroc has its own debugging tool. I usually use proteus because i can simulate and stimulate the pic, and the register operation is still viewable. If you want to switch to mikroc, this could be a headstart:
But c18/hitech-c is also very powerful. So, you have to decide by yourself.
As for the hex file, when you build your c program, a hex file is automatically generated in the folder you specify your project. The next step is to test the hex file; simulate or burn to pic.