The main problem I always encounter with external packages or internal commands is that bonds that pass through the boundary of the simulation cell, or atoms that exist exactly at the wall of the cell(super common for inorganic structures, polymers, MOFS, coordination polymers, and all the interesting stuff...) always get problematic in some way. Bonds that pass through the wall usually break), other times atoms that exist on the wall get duplicated while they really shouldn't.
I have used topotools, Lammps-interface, Atomsk, OVITO and other external software with topotools and Lammps-interface seeming the most promising from a topological point of view, but again I get the same problems with them