Low(A) und High(A) geben den unteren und oberen Index von Array A zurück - nicht die Werte an diesen Positionen. Damit haben iLo und iHi beim ersten Aufruf auch die Werte 0 und 8 und nicht 3 und 5.
Edit: Die Methode funktioniert übrigens.
iLo und iHi haben die Werte 0 und 8, aber Feld[Lo] und Feld[Hi] haben die Werte 3 und 5.