Set x:Shared="False"
on IconsAndLabelsArray
so that for each comboBox new resource is created instead of using previous one.
<x:Array x:Shared="False" x:Key="IconsAndLabelsArray"
Type="{x:Type StackPanel}" >
....
</x:Array>
Issue is Visual must be disconnected before adding to another Visual parent. That's why combobox last opened always won and since resources are shared by default. Hence an issue.
Setting sharing to false will give each comboBox, new instance of resource.