Somehow I was able to get the result I wanted by the following procedure / magical ritual:
Disconnected the typedef from the library.
Saved ONLY the Enum .ctl file.
Reopened the project, which now cannot find the .ctl file because it isn't part of the library as expected.
Pointed LabVIEW to the exact same file location for the .ctl file.
LabVIEW prompted me, warning me that there's a mismatch because the library was expecting the .ctl file to be part of the library, but the .ctl file wasn't expecting to be. Selected the option to resolve it in favor of disconnecting the .ctl from the library.
Waited for the entire project to load, then checked the ~155 instances of the enum throughout the project. Found that none had been reset.
Having to document every instance of the enum is sort of ridiculous. At that point, I think I'd rather use OpenG "select enum value by string name" primitive and implement Darin's "dare to dream" scenario. But that seems like it'd cause a ton of needless overhead...