Ciao,
mi viene da pensare che sia un problema di nomi di tabelle, che passando il dataset intero non trova lo stesso nome che hai nel report.
Io cmq tipicamente giro su tutte le tabelle del report e setto i dati con SetDataSource su ogni tabella in modo da essere sicuro che vengano associati correttamente, con un codice tipo:
...
DataSet mioDataSet = new DataSet();
report.Database.Tables["prima"].SetDataSource(mioDataSet.Tables["prima"]);
report.Database.Tables["seconda"].SetDataSource(mioDataSet.Tables["seconda"]);
...
il resto del tuo codice sopra e sotto sembra corretto.
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo