It's amazing what randomly changing things does.
It seems that because I had a result set as singleRow it was expecting a dataset to come back , and it does not interprete an output value from a Stored Proc as a dataset.
By simply changing the resultset value to "None", the issue has gone away and my value is being returned fine.
Cheers