I went a different route and solved the issue. For someone looking at a similar problem - this what I ended up doing:
I just loaded one array collection with data for all of the drop-downs on the form. I then populated each dataprovider with individual elements from the array.
for (var i:int = 0; i < numFormElements; i++)
for (var j:int = 0; j < numvalues; j++)
var valuefield:String = 'value_' + [j+1];
var obj:Object=new Object();
elementCounter = elementCounter + 1;
I keep track of the element #, number of values for each element and the overall index for the array.
Each data provider is then loaded with the subset from the array:
for (var z:int = (_counter - _numvalues) ; z < _counter; z++)
var _label:String= newDropDown.getItemAt(z).label.toString();
var _data:String = newDropDown.getItemAt(z).data.toString();
This seems to work nicely - each component is created and loaded with only their data. I spent 3 days searching for a way to create a dynamic arraycollection at runtime. I don't think it's possible - but I'm not sure it was the best method anyway.