Deforming objects along the surface of other objects
So one of the cool things about a torus-- which is what a chain link is-- is that it unwraps really nicely.  You seam it twice and it makes a perfect square.  And any tiling texture on that square will tile on the torus.
So what I might try here is to take that knowledge and create some displacement maps for my toruses.  You could build each link's stuff as a flat scene, then render to a height map, and apply that height map as displacement to your torus.  (UV mapping the individual elements would be a different matter though.)
Another option here is to use the Textools addon, which can create flattened versions of meshes.  It rips along UV seams and then creates a flattened shapekey.  From the flattened shapekey, you can surface deform other meshes, then unflatten.