The user selects from a list an object associated with an element in the array (e.g. a pull-down menu of names). You read changes in the selection and when they happen you read that index of the array using array subset and fill a cluster on the control panel or unbundle and fill separate controls...
Now - If the user is doing the editing on a separate set of controls then continously (or when he hits a save button, moves to the next object or similar) bundle them back into a cluster of the correct type and replace the given array index using the replace array subset function.
If the user is operating on a cluster of the same type as in the array just do the replace array subset.