, was hast denn du da für einen (sorry für das harte Wort) Quatsch programmiert!
Der Höhepunkt darin ist, mit Replace-Array-Subset ein 1D-Array durch ein anderes 1D-Array derselben Größe zu ersetzen.
Mehrfach holst du dir aus dem 2D-Array in der Schleife dasselbe 1D-Array heraus, ich bezweifle, dass sowas günstig für die Performance ist. Dann die ganzen Value-PropertyNodes, dass ist die allerlangsamste Möglichkeit, um sich Werte irgendwo herzuholen bzw. zu schreiben. Erzeugt immer Kopien im Speicher, und das bei dem doch schon großen Array.
Und Suchen und Zusammensetzen bei Strings dürfte auch nicht so schnell wie bei Zahlen sein.
Und logisch erhalten deine Ergebnis-Arrays wieder Leerzeilen, denn genauso hast du es programmiert! In jedem Schleifendurchlauf schreibst du ein 1D-Array per Autoindexing raus, also haben deine 2D-Arrays am Ende dieselbe Größe wie das Eingangsarray.
Hier mal eine funktionierende Alternative:
(In den False-Cases wird einfach durchverbunden, ansonsten passiert da nichts).
Gruß, Jens