Hmmm, that sounds a little suspicious to me. When you open a blueprint class in the editor it’s like you’re editting the CDO (I think), but I don’t full understand what the Compile button actually does - or how it would interact with a function called (that likely gets dispatched to the inherited CDO from the C++ base class) on the derived blueprint class CDO.
Have you tried setting a breakpoint on AddNewSpline - running the editor, clicking your add new spline button, and then stepping in and through the AddNewSpline function to see if the code path is doing what you expect.
You could also find the code behind the Compile button and set a breakpoint there and step through to see where your elements are getting nulled out and why.