Had to work around this by using the RAS server instead. No idea why the above doesn't work because according to Docs it should.
// View the report using page server
PSReportFactory yPSReportFactory = (PSReportFactory)ceSession.GetService("PSReportFactory").Interface;
myReportSource = myPSReportFactory.OpenReportSource(ReportID);
//place the report source in session for use with postbacks
Session.Add("ReportSource", myReportSource);
CrystalReportViewer1.EnterpriseLogon = ceSession;
CrystalReportViewer1.ReportSource = myReportSource;