The solution for first problem was to give the parameters a value when calling the report and not to rely on the defined default value.
For the second problem the solution was to REPLACE their position in the SQL query:
execute MyServer.MyDB.MyProc @Param2, @Param1, @Param3.
Then @Param1 and @Param2 got the right values.