Can someone who had a positive skin test for TB, 20 years ago give blood or bone marrow? But never had tb.

Check with your doc. Usually no problem. But check with your doc, especially if you have not taken medication to protect you against tb. There are 2 billion people with a positive test, world wide.
Yes. . Yes. A positive PPD skin test in the absence of active tuberculosis does not preclude blood or bone marrow donation.