Relamente no veo la duda. Al parecer ya tienes todos los elementos para hacerlo.
Para empezar te olvidas del DBGrid que lo que importa es la tabla asociada. Recorres ésta y en cada paso validas. Si es correcto lo insertas y si no no.
Código Delphi
[-]
while not TablaOrigen.Eof do
begin
if not TablaDestino.FindKey(...) then
begin
TablaDestino.Append;
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
...
end;
TablaOrigen.Next;
end;
// Saludos