if i comment out the begin/end lines then the sketch manages to turn on the GPRS module, otherwise if i allow one/both these lines to run, it fails miserablly.
You're calling the end method right after the begin method. That's like picking up the phone and immediately hanging it back up again. If you want to do some communication, then call begin, do the communication, and then call end. Or better yet, if the resources aren't needed elsewhere then just leave the SoftwareSerial instance open and never bother to call end.
I suggest you check which pins your two devices are using and see whether there are any pin conflicts. If not, I suggest you post a wiring diagram, the complete code which demonstrates the problem, and a description of what happens when you test it and how this differs from what you want.