Thanks for the response. I have been using the on-screen debugging, which of course I can't see while using/testing web services. The issue was fixed by changing all of the function calls from self::... to $this->... , so making calls on the object rather than the class.
I'm not sure whether the problem was with the function I am using or with Moodle's SOAP/Web Services API, so not sure if I should create a tracker for this...