then it's using 1 dim l as label at the start of the for each where it puts the actually label reference in.
and when you store that 10 times the last label will be referenced to when you use arrLabels(0) or arrLabels(66).
an extra dim might work
ForEach lbl AsLabelIn pnlLabels.GetAllViewsRecursive
dim l as label
l=lbl
arrLabels(index)=l