It took hours to learn, and there were no online resources regarding the fix, so I am posting my findings here.
I use Interfaces a lot. Coming from a C# background they are my bread and butter. As such, I’ve used the UE equivalent where I can for cleaner code reasons. The problem is they’re a bit finicky applied to native and bp objects; inheriting them into blueprints does help but imposes limitations in tech design.
To my latest chagrin, Blueprints implementing C++ interfaces crash when their BlueprintNativeEvents with additional parameters and no return type are called. This does not occur if the function has a return type, and/or no parameters, or if the implementing blueprints inherit the interface from a C++ base class, only if the blueprint implements the interface itself.
I could not find a solution in the forums, StackOverflow or Reddit. I knew the function was executing as breakpoints would trigger but the engine would crash when taking the next step, seemingly while seeking its non-existent or inaccessible parent function. As BlueprintNativeEvents without a return type default to “events” in the editor, I used the ForceAsFunction meta macro as a hail mary, trying to simulate the default implementation of BlueprintNativeEvents with return types, not knowing what the results would be, and for some UHT or other unknown reason, this alone completely fixes the problem.
So there you have it, I don’t have an answer for why this fixes the issue only that it does, I hope others find this PSA helpful.