I suspect the hard disk is the bottleneck. Most BitTorrent clients fetch random parts of a file from seeders and peers, whereas FTP and HTTP clients generally fetch files sequentially from start to finish. This means that with just a handful of BitTorrent peers, the hard disk will be constantly seeking for the random pieces the peer clients request.
31MBs (250Mbps) seems very good for a high end hard disk. Most consumer hard disks will struggle to even deliver 10MB/s randomly seeking non-stop, e.g. try copying a 5GB file from a hard disk while running a virus scan on it at the same time. I'm not sure about DC++ or SoulSeekqt, but even if they run deliver files sequentially, the hard disk will still be busy seeking all over the place for the BitTorrent clients.
I suggest try moving those 10 most popular torrents to the main SSD (or to a separate SSD), then see how this affects the overall upload speed.