As an update, we have identified what seems to be causing the issue in this situation.
Our SOFS shares were created with the Continuous Availability option. Firestreamer was writing with IO sizes of 32 K directly to the disk, making it slower. When we created shares to the same location without the Continuous Availability option, Firestreamer was still sending data with IO sizes of 32 K, but was now buffered, so we were writing IO sizes of 2 MB to the disk, making the backups much faster.
We've created the shares with the correct configuration for all of our libraries and are now seeing much faster backup times.
Thank you for your help.