At a glance this looks like somewhat hard-coded arrive / leave tangents. How are you actually generating the spline? Manually or dynamically? And how are you setting the tangents?
This is the default behaviour:
There seems to be more than 1 kink between the spline points, too. This, on its own, would be fairly tricky to reproduce.
At this point, it might be easier to just create a new spline
On the other hand, Clayton.Campbell’s suggestion of setting it all to Curve should just work. Other than that, there must be something shady happening to the spline. Perhaps the construction script of that object is applying changes?