You are getting the out of bounds error because SequenceFile.Data leads to the edit time copy of the sequence file. Thus when you reach the array, it hasn't been resized to match the number of sockets.
The TestSocket is a parameter to the root point for each socket execution. Try using:
RunState.Root.Parameters.TestSocket.UUT
The best way to discover property paths like this is to put a breakpoint in your sequence and examine the Context tab. For process model information, you usually want to start looking at RunState.Root. Never go into RunState.SequenceFile, unless you are interested in the pre-execution edit-time values of properties or variables.
To access locals variables, browse to the desired sequence context using RunState.Root/RunState.Caller/RunState.Main and then examine the Locals container.
To access runtime step properties, browse to the desired sequence context using RunState.Root/RunState.Caller/RunState.Main and then examine the RunState.Sequence property. Unlike RunState.SequenceFile, this is the execution time copy of the sequence.