Já existe a condição para não gerar a tag ICMSUFDest, basta não preencher com valor maior que zero a tag pICMSInterPart.
procedure TNFeW.GerarDetImposto(const i: Integer);
begin
Gerador.wGrupo('imposto', 'M01');
Gerador.wCampo(tcDe2, 'M02', 'vTotTrib ', 01, 15, 0, nfe.Det[i].Imposto.vTotTrib, DSC_VTOTTRIB);
if (( NFe.Det[i].Imposto.ISSQN.cSitTrib <> ISSQNcSitTribVazio ) or (( NFe.infNFe.Versao > 3 ) and ( nfe.Det[i].Imposto.ISSQN.cListServ <> '' ))) then
begin
if NFe.infNFe.Versao >= 3 then
(**)GerarDetImpostoIPI(i);
(**)GerarDetImpostoISSQN(i);
end
else
begin
(**)GerarDetImpostoICMS(i);
(**)GerarDetImpostoIPI(i);
(**)GerarDetImpostoII(i);
end;
(**)GerarDetImpostoPIS(i);
(**)GerarDetImpostoPISST(i);
(**)GerarDetImpostoCOFINS(i);
(**)GerarDetImpostoCOFINSST(i);
if nfe.Det[i].Imposto.ICMSUFDest.pICMSInterPart > 0 then
(**)GerarDetImpostoICMSUFDest(i);
Gerador.wGrupo('/imposto');
end;