What device are you testing on?
Figure out the images you are drawing, multiply their width times height and add them all up. This is how many pixels you draw. If you are on mobile, likely you are fill rate limited, so to improve the frame rate you need to draw fewer pixels. In your test you likely improved the fill rate because your one large image has fewer pixels than all your smaller images combined.
You should try to reduce the amount of whitespace in each image. Eg, imagine a sword at 45 degrees, the image will have a lot of whitespace. Rotate the sword so the overall image size is smaller and the amount of whitespace is reduced.
Another way to draw less whitespace is using meshes. This is supported in spine-libgdx. Meshes can use slightly less, the same, a little more, or a lot more CPU than a region attachment. Minimize the number of mesh vertices to minimize the CPU usage. Eg, 3 mesh vertices is more efficient CPU-wise than a region attachment, 4 is the same, and more than 4 is less efficient. It is only a small amount of CPU used per vertex. If you are fill rate limited then trading CPU for fill rate is a good deal. One downside to using meshes is you need to use PolygonSpriteBatch to render, which has different performance characteristics than SpriteBatch.