I’ve been struggling with this. I still am. Maybe someone has solved it. I tried parenting all the cars to one path, and I tried parenting five cars to five paths. They always left the track. I think I know why, I’m guessing the cars are each parented to the beginning point of the path even if they begin life somewhat down the track a ways. Therefore, the path begins translating their position regardless of their location on the track. That’s all I have at the moment.
Do Alt-O on each of them (Clear Origin) then set a varying TimeOffset on each if you want them to get on board sequentially.