Thanks for all the responses, guys. I'll try to address your questions in order.
ozmoose:
I honestly don't remember or know where this roll of Tri-X came from. But at some point I had put it into the freezer. This might have been years ago, which is why I'm hazy on things.
No, I didn't overdevelop the film. I followed the recommendations from Kodak in terms of both temperature and development time. Specifically, 8.5 minutes at 22C (72F).
I adjusted the contrast some in post, but I did this because, typically when I dupe a B&W neg, contrast is soft. I have my camera's contrast setting set down a couple of steps, especially to prevent blocking up of highly saturated areas with slide film. For B&W I just leave it alone so the shadow areas don't block up. Then I adjust contrast as necessary in post -- after I've converted the image from negative to positive. This usually works pretty well. I can usually preserve quite a bit of detail in shadow areas doing this.
The "scanning" didn't contribute to the grain. I've examined the negatives with a loupe and it's plainly there.
I did add a slight amount of sharpening. I use Photoshop's excellent raw converter to convert the images over. I can do a lot of processing to images within the converter, but since these are negatives, it's hard to tell what effect I'm having, so I just let the converter rip, set to "auto" for exposure. For post processing beyond what the raw converter does, I prefer to use Corel's Paint Shop Pro. PSP has a sharpening command that Photoshop doesn't, called High Pass Sharpening. I like using it because it will sharpen an image as effectively as Unsharp Masking, but it doesn't add nearly as much noise and artifacts to the image as USM does. Nonetheless, I have it dialed down so the amount of sharpening added is minimal.
jvo: I don't think I agitated too much. Four flips (180 degree rotations) every 30 seconds, which is what I typically do. I start my developing time once I've poured in all the developer and conclude it when I begin to pour it out.
The dupe process does not add grain.
miha: thanks for those photos. They look like what I'm used to seeing when I shoot medium format. Example -- Tri-X 120 developed in D-76. This was taken with a Yashica Mat 124 and scanned on an Epson 4990 at 2400 ppi.
darkosaric: thanks for the example. Yes, what you've achieved is about what I expect. After much re-examination of my situation I think that I probably got a hold of a roll of Tri-X that had probably been stored improperly. I've shot 30-year-old Plus X Pan that looked way better than that roll of Tri-X. So before I make any more decisions, I'm gonna buy some fresh Tri-X and try again.