Ouch, that's simply bad programming from whoever programmed the VIs you're getting the values from. There's no great way to seperate them unless you simply watch which position in the array from "Get control values" the value is in. This way you can index each name.
If you have a value for a control "X", and you need to write the value to a control, and the target VI has two or more "X" controls, you'll need to do some workarounds, but it won't be pretty.
In your case, are the controls with the same name also of the same datatype? Maybe you can differentiate them using the type descriptor which is returned from the "Get all control values" function (LV 6.1)?
Hope this helps
Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)