Why does my array spiral off
This is the method I've used to solve my issue, select the object you want to array, hit Shift + S to snap the 3D cursor to the selected object, create an empty on said object (make sure rotation and scale are ticked for an even and proportional array), select the object add the array modifier, untick relative offset instead use object offset using the empty just placed and apply how many counts you need.
To evenly space the array I selected the empty hit R Y = 360/8, which divided 360 degrees into 8 parts (which was my array count) on the Y axis.
To make small adjustments I selected the object in edit mode and positioned it slightly as well as making minor adjustments to the empty.