Fixed it! (I think)
After struggling I figured out how to make it happen.
The main problem was not in RC3 where I was looking. (I am such a donut) I needed to be in rcS.d directory, this is all the start up services. When I looked in this directory the setserial service was at the back of the queue, with its priority set to S18setserial. Networking and ifupdown were both further up the boot order. S13networking & S10ifupdown.
I needed setserial to start before the others, so when the network interfaces auto ppp0 runs, there is a serial link to run as well. I found out to change the boot order, you have to modify the scripts.
If you look in init.d and check out the networking and ifupdown scripts. At the very top are a set of parameters. One being the #Required-Start parameter, if you set that parameter with the addition of setserial, the script then knows for it to run, the setserial script must have been run before it.
Once you have modified the scripts you have to update them using the following commands.
update-rc.d networking defaults
update-rc.d ifupdown defaults
Now if you go and look in the directory rcS.d you should see that set serial now sits above ifupdown and networking in the boot order.
Something else I had to do, was modify the setserial script too before the previous commands would work. Linux kept spitting back at me complaining about looping issues. This was because the setserial script settings are as followed.
When I changed the script to the settings below and and ran update-rc.d command like before, the issue went away.
I am assuming this changed the dependancy to the local file system as before it was remote and that needs more time to boot. My next question is, I have I now manipulated this in a bad way?
Either way currently when I boot up, the ppp link runs with out issue (though I did have to remove nodetach from my ppp script, as that stopped me from logging in (muppet))