We do something similar but slightly lazier/hackier for this, where we have equivalent properties with different names on different events. We basically just create a single custom property that uses an IFS chain to check if eg A is defined, and if so to use A etc. Roughly looks like
IFS(
DEFINED(A), A, // We have A so we'll use the value of A as the value of the custom property
DEFINED(B), B, // No A so we check if we have B, and if so we use that as the value of the custom property
DEFINED(C), C, // As above, we fall back to checking is there is a property C and use that value
TRUE, "" // This is the default case, so that any event without an A/B/C
)
etc. I hadn't thought to try to to just create custom properties with the same name...