Problem solved. For 2012, the ContainsID property needs to be set for the internal representations to work. This was not required for 2005 or 2008.
IDTSCustomProperty90 outputProp = outputColumn.CustomPropertyCollection.New();
outputProp.ContainsID = true;
outputProp.Name...