There's no guaranteed way without changing the types. The guaranteed representations with those types result in size 40, so you would need to rely on layout optimization with the default representation (explicitly unspecified), and layout optimization for those is only guaranteed in very specific cases (not this one). More on enum layouts can be found here.
If you could get your DataPrimitive down to 24 bytes you could have it. That might happen automatically with your current types in an un-guaranteed way some day [1], but it's not happening currently.
If your Large never need to change once created, you could switch the types to