My array curve doesn't follow curve
So you need put the chain's origin at the same point as the curve's origin, which is not the case currently (you don't need to put all the origins at the world centre, which was not the case anyway).
Also, as you've used an empty as object offset in the Array modifier, you also need to move it along the chain object, otherwise it will mess the Array. So:

Select the curve, press right click &gt; Set Origin &gt; Origin to Geometry.
Press ShiftS &gt; Cursor to Selected
Select the chain object, shift select the empty, press ShiftS &gt; Selection to Cursor

It should work.
Also make sure that the curve's direction is good. FIrst enable their visibility in the Viewport Overlays. To switch their direction, right click &gt; Switch Direction.