Thinking through the standards quote again, I'm not sure that MSVC's behaviour is even wrong (when not using C23 type specification)? Because it doesn't look like it's required that the underlying type has to be sufficient to represent the largest enum. So maybe it's not wrong, it's just ... broken.
Could it be that the compiler is just interpreting the large number as a signed type that has wrapped around?
Has anyone raised the issue with MS to see what they have to say about it?