Se esses datagridview estiver em um mesmo form, pode se criar um método e passar os datagridview como parametro.
private void CopyAll(DataGridView de, DataGridView para)
{
if (para.Columns.Count == 0)
{
foreach (DataGridViewColumn dgvc in de.Columns)
{
para.Columns.Add(dgvc.Name, dgvc.HeaderText);
}
}
para.Rows.Clear();
foreach (DataGridViewRow dgvr in de.Rows)
{
List<string> cells = new List<string>();
foreach (DataGridViewCell dgvc in dgvr.Cells)
{
if(dgvc.Value == null)
{
dgvc.Value = "";
cells.Add(dgvc.Value.ToString());
}
else
{
cells.Add(dgvc.Value.ToString());
}
}
para.Rows.Add(cells.ToArray());
}
}
Ele varre o primeiro DGV e passa os dados para o segundo.
Espero ter ajudado.
Até mais.