Thanks for the help. I have it running very well right now. Here's what I had to do:
1 - I get the current defaults from the ServerReport using the GetParameters method. This returns the default parameters for the ServerReport
2 - I have some parameter limits and defaults for my application that I need to apply to various report parameters. We're storing these in a local SQL Server database using the reportpath to uniquely identify the report. I put those in generic List of Report Parameters.
3 - I also walk the control tree and extract everything in there that looks like a report parameter into a generic List of ReportParameter (these are what my user modified)
Finally, I use a method to come up with a "final" set of parameters to use for this render and then apply those to the ServerReport using SetParameters(). The method takes the default parameters and then adjusts values based on the parameter limits and defaults and then applies the client parameters last. I use the PromptUser and Visibility attributes to determine if I should even bother with the client-manipulated parameter. At the bottom of the method I simply apply the resulting List using SetParameters.
I do all of this in the PreRenderEventHandler. The reflection through the control tree (see my c# code above) is not overly costly, although there is an impact. Still, the whole thing works great now. I'm also storing that collection of parameters and other information about the ServerReport into a Report object that I create and store in a stack so I can allow my user to step back and forward through the reports they've rendered and have them show up using the parameters they specified originally. I've even created my own breadcrumb trail so I can show drilldowns, etc.
Thanks for the help everyone!
Now on the the next thing - disabling the contextmenu for the Reserved.ReportViewer. I can get the rest of the screen to ignore righ-clicks, but the ReportViewer frame doesn't seem to want to allow me to disable that. Even a walk through the frames collection doesn't seem to be getting the results I want - GRRRR!!!!