Let's look at the dictionary definitions and see how the meanings fit into our sentence:
Everybody ___ her for saving the old man from drowning.
Congratulate - to express to (a person) one's pleasure at good fortune or success
Some related words and phrases are compliment and "wish joy to"
Praise - to commend the worth of; express approval or admiration of
Some related words and phrases are admire, compliment, and... congratulate
If we look at the thesaurus, there seems to be a little bit of overlap, but for fluent speakers, the situations where you would use each word are very different. The key concept to remember for congratulate is "good fortune or success" and the key concept for praise is "approval and admiration".
You congratulate people to let them know that you are happy for them. You praise people to express your admiration or approval of them. You might praise a person directly, or you could praise them to other people. You would always congratulate someone directly. For example, "I congratulated Joe for winning the basketball game. Then, I talked to his coach and praised Joe for his teamwork."
So, keeping all of that in mind, let's look at the sentence:
A. Everybody (complimented her on her success or good fortune) for saving the man from drowning.
B. Everybody (expressed their admiration of) her for saving the man from drowning.
The B sentence makes more sense in this context. You congratulate people for good luck, or for their success. For example, "Everybody congratulated her on her promotion at work." You praise people when they do something that you approve of that is often something extraordinary (but not always). For example, "Everybody praised her for her courage when she swam in the rough seas to save a man from drowning." or "His father praised him for getting his homework done before going out to play."