I am not sure that I can help you.
What I am doing is that I fill a datatable and apply it to the crystal Report.
My example is kind of different, since I upload the rpt file dynamically.
Dim cryRpt As New ReportDocument
Dim strReportPath As String = Me.selectedNode.RptLocation & "\" & Me.selectedNode.ReportFile 'The path for the rpt file
cryRpt.Load(strReportPath)
cryRpt.SetDataSource(crData) 'crData is the datatable that I am filling with data corresponding to the fields for the Crystal Report.
crvReport.ReportSource = cryRpt 'crvReport is a CrystalReportViewer)
crvReport.Zoom(2) ' use 1 for page width, or 2 for full page
I know that I am not helping you 100% but maybe you can find my answer as a little help.
Sorry I don't have time to recreate your problem and try to solve it.