Thanks, Mike Le for your workaround - that did not quite work for me, but it did lead me to figure out how to resolve my instance of this problem.
We have an enum type def tucked away in a class. Actually - we have many. Like hundreds. We typically drop the type def on the BD and pass it in to a connector pane, or a shift register into a case statement, or.... Every now and then, some of the constants would revert to the 0'th element of the enumeration.
What Mike suggested in this thread works - but I ran into two problems:
1. When I added the type def back into the class, the problem came back.
2. It does not help me identify which of the hundreds of places where I use enums are affected.
So, the solution (hopefully this will help you if you run into this) is gloriously simple. Clear the object cache! Go to Tools>Advanced>Clear Compiled Object Cache
Make's sense to me now.
This should be the second step in building an executable (the first being grabbing the sources from your repository).