I just realized I'm not seeding properly. Azureus (my bittorrent client) downloads to a folder called "Incomplete" and then transfers the torrent to the finished torrent directory when it's done.
Since I had already downloaded everything, I copies it to the Incomplete area, then Azuereus verified it, then tried to move it to the finished area, but in the process it got a "too many files open" error, so the copy didn't work, and the "finished" copy is mostly empty.
Not sure how to fix the "too many files open" issue. I'm guessing Azureus is trying to copy the files faster than the disk can write, and since this torrent has many hundred files, it eventually runs out of file handles? What worries me is that the problem is going to get worse as we add more directories (I'm guessing the full set is about 2500 files?)