In my experience forward declarations of enums and structs don’t work. The reason it may have worked before is because under the hood UE4 can merge source files before compiling to reduce compile time. This is called “unity build”. The reason why it broke suddenly is then because after small code changes can cause the unity build to combine the files together in a different way. So by chance the unity build took care of an include you were missing, and by chance it stopped doing that after different files were combined.
To disable unity build, go to your project’s MyProject.Target.cs and add to the constructor:
        bUseUnityBuild = false;
Try compiling once in a while with unity build disabled, it may reveal some more missing includes which would have randomly turned up later.