I am currently using array and curve modifiers to array a vertex along a curve and then instancing an object to that vertex in order to avoid the object getting warped or rotated while following the curve. For an example see image:
The current project has over 30 edges that require the object to be arrayed along them and I'd while I could simply duplicate both the object and vertex and repeat the process for each curve, I'd prefer to avoid having 30+ identical vertices and objects as well as having to link all the objects so that it would update all of them when I update the mesh of the object. I'm hoping there's a way to either array the vertex along multiple curves or instance the object over multiple vertices so while I'd have a vertex for each curve It would still leave me with a single master object that I can edit and have the rest auto-update.
I've figured out how to do most of the things I was trying to do, the only thing I'd like to figure out is if there's a way to permanently link modifier data so that if I remove the subsurface modifier on the master pillar it removes it on all of them. other than that I've figured out a way to have pillars array along multiple curves but maintain a separate object that I can edit so that it applies to all of them.
For anyone interested or confused about what I was doing, I have attached a blend file.
Finally, I want to thank @atomicbezierslinger for their patient help despite my lack of understanding on account of only having been learning how to use Blender for about a month.