I have already deal with this problem, data is not received by microcontroller. Solution is very simple, SIM300 is very fast in communication and PIC 18f452 can't handle such a high clock speed. So need to place a buffer IC between these two components. In this way both can communication with each other. I have a vast experience on PCB layout design on Eagle CAD. I can also provide you the PCB lay out of working project with no extra charge. There is no need of MAX 232 for this as you mentioned.
Power supply is also an important parameter SIM300 has surge peek current of 2A, so low current power supply can't be used. If required power supply layout can b provided on extra charge.
For coding I use MikroC PRO, code for PIC 18F452 can be provided after hardware verified by you. Because software code is totally depend on hardware configurations. I use Real Time Operating System which give you better response time and multitasking if required, otherwise single loop coding is also can be provide on demand.
If you have working code then it will not required to be change because your problem is hardware based.