Köszi a segítséget, sikerült megoldanom.
A kód alapján amit küldtél, a rendezési elv $i4 alapján történt volna. Minekutána $i3 viszont több értéket is felvehet, $items[1] vagy $items[2] stb. nem minden esetben stimmelt volna, amire a rendezés épülhetne - ezért ahogy ötleteltem, gyakorlatilag külön függvénybe tettem a subset generálást ami visszaadja azt a subset-et amit $i3-ból készítünk először; ennek a returned value-nak megmértem a hosszát (mondjuk legyen ez $pLength) és gyakorlatilag ahhoz igazítom dinamikusan hogy $items[$pLength] hogy hol helyezkedik el $i3.
Ezzel rendeztem $i3 alapján így:
$blah = $items[$pLength]
majd amikor kiírom, ennyit adtam hozzá - a vesszőt a későbbi file-ba kiírt elemzés miatt három pipe-ra cseréltem.
$items -join " ||| " | Sort | ForEach-Object{$blah + " " + $_}
Ha érdekel szívesen elküldöm az egészet!