Out of curiosity, have you tried using removing the “class” modifier from your enum (thus making it effectively just an int in disguise)? Enum Classes are a C++11 thing that enforce type safety so I could see that causing issues.
You are right, it works like this now:
UENUM()
enum EUnits {
None = 0,
Percentage = 1,
Seconds = 2
};
I then had to change all the enum members that I had to TEnumAsBytey but thats not a big deal.