The main difference between "I'm doing well" and "I'm doing good" is their grammatical function and the context in which they are used.
"I'm doing well" is grammatically correct and commonly used to indicate good health, good progress, or a good situation. For instance, "I'm doing well in school" or "I'm doing well after my surgery."
"I'm doing good" is grammatically incorrect but can be commonly used informally to indicate that you are doing good things or doing good deeds for others. For instance, "I'm doing good by volunteering at the shelter" or "I'm doing good by donating to charity."
In short, "I'm doing well" is used to indicate a good state of being, whereas "I'm doing good" is used to indicate doing good things for others.