You might be interested in this: 'EncodeableFactory.GlobalFactory.AddEncodeableType(typeof(Opc.Complex.Types.YourComplexType))'
You will have to define (auto generate if possible) your complex type in your c# code beforehand.
This answer can point you in the right direction. It uses the custom complex 'Vector' type.