L'algoritmo da te impiegato ha dei buchi che possono inficiarne la validità.
Non gestisci i Comuni che hanno una denominazione che li identifica univocamente.
Guarda ad esempio "CALLIANO" che possiamo trovare in Provincia di Trento (TN) con CodComune="B419" oppure nella Provincia di Asti (AT) CodComune="B418".
Altro esempio "PEGLIO" che possiamo trovare in Provincia di Como (CO) CodComune="G415" ed in Provincia di Pesaro ed Urbino (PU) CodComune="G416" ma che tu hai codificato con la vecchia definizione per Pesaro (PS).
Evidenzio che nel calcolo del codice fiscale, viene preso sempre il primo elemento della coppia (in base all'ordine in tabella).
La tua tabella dei Comuni non è aggiornata con le variazioni apportate nel tempo, come nuove Provincie o Comuni sottoposti a fusioni o soppressi (esistenti nel passato in riferimento alla nascita).
https://www.istat.it/it/archivio/6789#Elencodeicomunisoppressi-1
Ho dato una occhiata al codice VBA da te allegato ma non lo hai adattato (come ti avevo suggerito, nella funzione DLookUp) e visto l'inconveniente (della mancata identificazione nei casi multipli della denominazione del Comune) consiglio, almeno, di adattarlo applicando nel criterio di ricerca entrambi gli elementi (Comune e Provincia); giusto per fornire un suggerimento pratico, qualcosa del genere:
' Ricerca il codice Belfiore (di 4 cifre in base a Comune/Stato di nascita) comprensiva della Provincia per distinguere fra occorrenze multiple
If LC1 = "" Then LC1 = DLookup("CodComune", "Comuni", "Comune=" & Chr(34) & LC & Chr(34) & " AND PV=" & Chr(34) & Pr & Chr(34))