Try this:
1. Duplicate linearly in the y-axis.
2. Use Deformation/CurveBranchDeformation. Note: The command always assumes the y-direction is along the curve, and the x and z are centered around it. So put your copies starting at 0,0,0 and facing up in Y, then use effect/FreeTransformations to lock everything in. Turn on LCL (local) transformations (bottom right of screen) and use Y-translate to move along curve. You can rotate around curve, or translate in other axis as well.
If you can afford the objects deforming as they turn corners, then you might try this.
1. Create a linear curve with enough segments to equal track pieces.
2. Create a skeleton with the same amount of sections.
3. Create clusters with Modeling- Tag/SetCluster on the linear curve. Constrain each section of the skeleton to it's corresponding cluster with constrain/object to cluster. Note the large end of bone is what is constrained. The skeleton effector will be the last part constrained.
4. Attach your track parts by making them children of a bone, or constrains such as point and orinetation.
5. Use Deformation/CurveDeformation to attach linear curve to curve defining track shape.
This is a little involved but if you go through the steps you should be able to figure it out. This is probably not the only way to accomplish this, so if anyone else has a solution, by all means post it. You could also use null objects and constrain them to the linear curve without the skeleton. Then constrain track pieces to this.
Urp