I've tracked down why I was getting this error to the refresh method of the ReportDocument object.
The sequence of execution is as follows;
get/set parameter values
set database location
The refresh step clears all the parameter values and defaults. I can't believe that this is correct behavour but hey ho, I'll try and work around it by saving all the parameter values to local storage when I open the report and then reset them after the refresh.
Is this correct?