A file would be nice, so that we could be sure we were giving proper advice. But what it sounds like is that you have geometry that acts connected between instanced objects, but the normals are discontinuous between the geometry.
Let's look at a cylinder. When you split the cylinder in half, into two different half-cylinders, it's just like marking the midline edges as sharp. In the full cylinder, these edges' vertices compute their normals from faces wrapping around the entire cylinder, but in the half cylinder, these vertices aren't using the same faces to compute their normals-- they only know about half the faces. We can see the dividing line when comparing our whole cylinder to our two half-cylinders below:
So how can we can get the edge vertices to act as if they're part of an entire cylinder? By giving them custom normals, copied from a whole version, with a data transfer modifier.
Because of the method (nearest corner of nearest face) we need to use the data transfer when the meshes are all in the same place, which is hard to show in a single picture. When the normals are correct, we should apply the modifier; after that, we can delete the target mesh. Custom normals require autosmooth to be enabled (but it will ignore the autosmooth angle once the geometry has custom normals.)