Ya está!!!!!!!!!!!
Era el tema del deep copy que comentaba el compañero vladek.
al final he hecho una función para asignar, tal que así:
Public Function copyCam(ByVal hmi2cam As Boolean) As Boolean
For i As Integer = 0 To MAX_CAM
If hmi2cam Then
Cam(i).Name = HmiCam(i).Name
Cam(i).Index = HmiCam(i).Index
Cam(i).CamType = HmiCam(i).CamType
Cam(i).Enabled = HmiCam(i).Enabled
Cam(i).Calibrate = HmiCam(i).Calibrate
Cam(i).CalibOK = HmiCam(i).CalibOK
Cam(i).Running = HmiCam(i).Running
For j As Integer = 0 To MAX_DATA_PARAM
Cam(i).Param(j).Enabled = HmiCam(i).Param(j).Enabled
Cam(i).Param(j).Name = HmiCam(i).Param(j).Name
Cam(i).Param(j).Value = HmiCam(i).Param(j).Value
Next
For j As Integer = 0 To MAX_DATA_SET
Cam(i).Setting(j).Enabled = HmiCam(i).Setting(j).Enabled
Cam(i).Setting(j).Name = HmiCam(i).Setting(j).Name
Cam(i).Setting(j).Value = HmiCam(i).Setting(j).Value
Next
For j As Integer = 0 To MAX_DATA_WORK
Cam(i).Work(j).Enabled = HmiCam(i).Work(j).Enabled
Cam(i).Work(j).Name = HmiCam(i).Work(j).Name
Cam(i).Work(j).Value = HmiCam(i).Work(j).Value
Next
Else
HmiCam(i).Name = Cam(i).Name
HmiCam(i).Index = Cam(i).Index
HmiCam(i).CamType = Cam(i).CamType
HmiCam(i).Enabled = Cam(i).Enabled
HmiCam(i).Calibrate = Cam(i).Calibrate
HmiCam(i).CalibOK = Cam(i).CalibOK
HmiCam(i).Running = Cam(i).Running
For j As Integer = 0 To MAX_DATA_PARAM
HmiCam(i).Param(j).Enabled = Cam(i).Param(j).Enabled
HmiCam(i).Param(j).Name = Cam(i).Param(j).Name
HmiCam(i).Param(j).Value = Cam(i).Param(j).Value
Next
For j As Integer = 0 To MAX_DATA_SET
HmiCam(i).Setting(j).Enabled = Cam(i).Setting(j).Enabled
HmiCam(i).Setting(j).Name = Cam(i).Setting(j).Name
HmiCam(i).Setting(j).Value = Cam(i).Setting(j).Value
Next
For j As Integer = 0 To MAX_DATA_WORK
HmiCam(i).Work(j).Enabled = Cam(i).Work(j).Enabled
HmiCam(i).Work(j).Name = Cam(i).Work(j).Name
HmiCam(i).Work(j).Value = Cam(i).Work(j).Value
Next
End If
Next
Return True
End Function
Es un rollazo impresionante ya que ahora tengo que tener en cuenta esta función cada vez que agregue/quite miembros de la estructura.
Pero bueno, así ya está solucionado...