I use the following to pass a Report from server to client - the report is a Crystal Report that is exported to a System.IO.Stream - which is basically what you have - and is successful on all browsers I have tested with;
byte[] fileArray = new byte[memory.Length];
memory.Read(fileArray, 0, Convert.ToInt32(memory.Length));
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.ContentType = "\".pdf\",\"application/pdf\""
context.Response.AddHeader("Content-Length", catalog.CatalogFile.Length.ToString());
context.Response.AddHeader("Content-disposition", "attachment;filename=" + fileName);
context.Response.BinaryWrite(fileArray);
context.Response.Flush();
context.Response.Clear();
context.Response.Close();
context.Response.End();
Hope this helps
Kind Regards