Das ganze Teil läuft sicherlich in einer Schleife.
Beim ersten Durchlauf, bei dem nodename vermutlich "machineID" ist, wird doc dimensioniert, doc erstellt, die Felder belegt und schließlich gespeichert.
Beim zweiten Durchlauf, bei dem nodename "machineManufacturer" ist, wird doc wieder dimensioniert, nicht erstellt, Feldwerte hineingeschrieben und gespeichert.
Vermutlich hast Du oben in Deinem Script ein On Error Resume Next (-> zu deutsch, "auch wenns knallt, Augen zu und durch"), sonst müsste Dir das Script mit einem Object variable not set aussteigen.
Das Dim doc As NotesDocument darf auf keinem Fall in der Schleife stehen. Auch die anderen Dim's gehören da nicht hin, führen aber vermutlich nicht zu einem Fehler, sondern kosten nur Rechenzeit. Möglicherweise vernichtet das Dim db auch das doc, müsste man ausprobieren, bzw. besser, raus aus der Schleife damit.
Wenn doc korrekt definiert wäre, sehe ich noch folgende Probleme im Script
Wenn machineManufacturer vor machineID im XML steht, wird kein Dokument erstellt, denn das passiert nur bei machineID (möglich, dass die Datei das so hergibt, kann ich nicht beurteilen). Object variable not set wäre der logische Folgefehler.
Bei jeder Veränderung des Dokuments (neues Feld) wird das Dokument gespeichert, auch das kostet Rechenzeit. Dass jedesmal die Form mit dem gleichen Wert überschrieben wird, ist eigentlich nicht kritisch, zeugt aber von einem suboptimalen Script.
Richtig kann es also nur so sein:
Dokument erstellen
Standardfelder füllen (z.B. Form)
Alle Felder (Items) zum Dokument füllen
Nächstes Dokument? -> Dokument speichern, neues Dokument erstellen
Standardfelder füllen (z.B. Form)
Alle Felder (Items) zum neuen Dokument füllen
usw.