Gracias sergiotarrillo por tu interes, el problema ya lo he solucionado, en realidad era muy sencillo. simplemente cada DataGrid tiene asociada un DataView, y este una tabla, que intente copiar sin exito, debido a que ya esta asociada a un objeto, pero se puede utilizar la funcion copy
eliprog.Tables.Add(dVProg.Table.Copy());
Gracias por su interes.