Splines aren't used at all. Sections on the track are connected through a reference on them that points to the next section. The AI use this to look a few sections ahead (3 or 4, depends on the track) and then they steer towards it. Using splines for this sort of thing is really inefficient. The AI collisions are caused by them naturally steering near the same location, which is then solved by making a random offset modifier for their location to look at then providing them with behaviors to steer away if they detect another ship, which I'm currently doing by iterating through all the ships on the track and then using the local offsets to figure out if they need to steer away.
For input, thanks for the code there, that will definitely come in useful

The reason I chose the current input manager was just because of convenience, although now that the game is going to be closed source for a while I'm going to be integrating cInput, which is a library I purchased recently with the intent for using in future project. It completely bypasses Unity's input system which will help get rid of all the bugs, such as the Xbox One controller issue which NetSphereEngineer has confirmed to be an issue relating to Unity and Windows 10.