As a NES(UK), but not a teacher:
The Oxford English Dictionary defines
1. Firm as:
definition of firm from Oxford Dictionaries Online
"a business concern, especially one involving a partnership of two or more people [as used in thefollowing expressions]:
- state support for small firms
- a law firm"
Essentially I would generally use it in the case of a partnership providing "professsional services" such as a firm of lawyers, solicitors, accountants etc.
2. Company as:
definition of company from Oxford Dictionaries Online
"a commercial business e.g.:
- a shipping company
- [in names] :the Ford Motor Company
- [as modifier] :a company director"
I would normally use this in the context of normal, registered "limited liability" companies.
3. Corporation as:
definition of corporation from Oxford Dictionaries Online
"a large company or group of companies authorized to act as a single entity and recognized as such in law."
I would normally use this term in the context of the overall "parent company" that owns a significant group of companies or a large government-owned/controlled enterprise.
Hope this helps