Cannot Create Multiple Copies of Two Objects
If you want a copy use copy()
To get a copy with same object level properties use
copy = ob.copy()
copy.name = f&quot;Target{i}&quot;

and link that to the collection.  It will have the same data linked as the original.
Using question code you were losing all object level properties of the original by simply making a new plain jane default settings object with just the data part of original.
How to duplicate an object in 2.8 via the Python API, without using bpy.ops.object.add_named()