Since we are, by design, omnivores, not herbivores, it stands to reason that every aspect of our health will be effected, to a greater or lesser degree, by depriving ourselves of meat. I know it is terribly fashionable to be a vegetarian, but it is not reasonable. Most people have too much meat in their diet and not enough fruits and vegetables. Were you remain largely vegetarian, but add a little meat, you would have an extremely healthy diet, certainly better than most Americans. And,I agree, tofu is awful.
You can get iron from beets and dark green vegetables, especially parsley, but iron probably wouldn't affect your hair as much as your energy level, so you'd know if you were iron deficient. The most likely elements missing with hair would be silica and protein, but that would usually show by losing hair, not it becoming limp and greasy. You can try buying a hair and skin supplement -- it's a multivitamin for hair and skin. Ultra Hair by Nature's Plus is a good one. You also might not be getting the proper amount of fat in your diet. You can compensate for that by taking flax seed oil. Usually, you see limp and greasy hair in someone who's using drugstore preparations on the hair, which block the pores and thus kill the hair follicles. You might try going to your local health food store and try some Aubrey products instead of whatever you're using. And consider, not everyone's body type is suited to be a vegetarian. If, for example, you added fish to your diet and your hair improved, it would tell you a lot. As for protein, any combination of whole grain and beans will give you good quality protein, it doesn't have to be soy -- the beauty of soy is that it's a complete protein, which no other bean is, but it's still low in certain things. What vegetarians have the most trouble getting are B12 and methionine; certain types of nutritional yeast can provide it for you.