I would have thought it had something to do with these lines from the SP:

Code:
SET @PostcodeID = (SELECT PostcodeID FROM ContactPostcode WHERE Postcode = @PostcodeID)
I tried rearranging everything to be in the right order and still it came back with the same error