In English, connotation is as important as denotation. When a person says “I am very tired,” the implication is that the level of tiredness could be described specifically. However, “I am so tired,” indicates that the level of tiredness cannot be measured or specifically expressed. The words “so” and “very” seem to serve the same purpose, but their meanings are taken slightly differently.
In the same way, the phrase “Thank you very much” indicates that the gratitude felt reaches an expected extent. On the other hand, “Thank you so much” indicates a longing to express immeasurable gratitude.
For example, A singer who receives an award might tell those bestowing the award, “Thank you very much.” She achieved the award on her own merit, so her gratitude is extended for the recognition which she knows she has earned. When the same singer addresses her fans at the awards ceremony, she might say “Thank you so much,” because without the fans, her talent might not have been noticed. She cannot express the level of gratitude she feels toward those who recognized her first.
As with many English expressions, these connotations are not hard and fast rules. As a general guideline, if you wish to be formal, use “very” and if you wish to move your listener, use “so.” Imagine the singer again, before she was famous, when complimented by a reporter: “Thank you very much.” And again, by strangers who stopped to listen: “Thank you so much.” The difference should be clear.