Secondo me stai facendo una cosa sbagliata volendo agire nel RecordsetClone che a livello razionale non puòà CONTENERE entrambe le cose... a meno che non sia una QUERY che estrae i dati in JOIN ma a quel punto è confermato che stai sbagliando metodo.
Se, [Tab1](Codice 1)<---->(M Codice)[Persons]
e se devi duplicare in Tab1 il Selezionato con tutti i suoi [Persons]... serve capire se la PK della [Tab1] è un Counter... basta una Query INSERT.
INSERT INTO Tab1 (SELECT Campo1,Campo2, CampoN FROM Tab1 WHERE Codice=ValoreTuoCodice)
Escludi dall'elenco dei Campi la PK se Counter, se non è Counter devi generare tu il Valore.
A quel punto devi recuperare il valore del Codice assegnato al Counter come Inserimento e lo puyoi fare usando IDENTITY.
Quindi apri un RS in lettura sulla Tabella Persons che filtra per Vecchio Codice, ovvero per quel codice che hai pocanzi duplicato, e, un secondo RS in scrittura in cui cicli i campi del primo andando a sostituire in caso di CODICE quello recuperato nuovo con IDENTITY.
Sembra cosa difficile sono 5 righe di codice.