Du hast die gleichen Probleme nur in eine andere Verpackung (Schleife) gelegt.
Das Set EndDateTimeA(ArrayNr) = Enddatum ist, wie Werner schreibt, das Setzen auf eine Referenz, die in jeder Wiederholung zwar geändert wird, da es aber nur eine Referenz ist, zieht diese Änderung in alle Werte Deines Arrays.
Wenn Du tatsächlich NotesDateTime-Objekte in das Array packen willst, musst Du diese jeweils als eigenständige Objekte behandeln, z.B.
Set EndDateTimeA(ArrayNr) = New NotesDateTime(Enddatum.DateOnly)