Array instances do not follow the path of the curve
There are 2 issues here:

The curve and object that should follow the curve must have their origins at world origin.

apply the Location of the curve (Ctrl + A in Object mode). This will move the origin (orange dot) to the world origin (0,0,0).
move the chain segment parts (parent and child in your case) to the world origin. It's easy to do with the 3D cursor (Shift + S in Object mode)


the bad curve has loose segments and a single lost control point in the top left area. It doesn't need to be closed but the curve must not have any loose parts. Check it in Edit move. Select a control point and press L to select all linked segments. What will be not selected are the loose segments. Move it a bit to see what's going on (G).


When the issues are fixed you can set Fit Type to Fit Curve and select the curve in the Array modifier settings. Blender will adjust the length of the array so it fits the curve.