If I remember right it is only some of the enum values that is different, such as instantActionTriggerType and weaponType, plus i think some buffInstantActionTypes are not useable within the ability (they will create an multi target required error if I remember right).
 
In my tool all enum "lines" are different instances of the same class instead of xml files (the enum values are txt files though), I have classes for different roles which all inherit the TreeNode Class. 
 
The enum values are added to the required enum lines contextmenues by loading the txt file as "_" + extension + label (the word infront of the enum value, label and extension (optional) is given as input parameters in the constructor) so when the instantActionTriggerType is added it look like this:
 
Public Overrides Function ToString() As String
 
   Nodes.Clear()
 
   Nodes.Add(New EnumTreeNode("instantActionTriggerType", Tablevel, _extend))
 
   Select Case Split(Text)(1)
 
      Case """ApplyBuffToIncomingHyperSpacers"""
 
         ApplyBuffToIncomingHyperSpacers
 
   ...
 
   End Select
 
   Return ""
 
End  Function
 
My knowledge with xml is very limited so I am not sure if there is an easy way to implement this. The only thing I can think of is to have different xml files for the different enum values and the refer to those where they should be used.
 
I hope this helped you 