Thanks for the update, lupin. Very well explained as always.
Another reason for the altered shellcode that I didn't think of at the time was that my IP is different to yours so that would have been taken into account, although probably wouldn't have altered the code as much as it was.
Still, it performed as expected which as you say is the main thing. I'll stop rambling on now and give the other exploits a try.