The relevant OED definition of good is 3b.
3b. Skilled or thoroughly competent in a particular activity.
Nothing new there; let's keep going. The OED then breaks this definition down farther. 3b(a) is attributive and irrelevant to this discussion.
(b) In predicative use. Chiefly with at or (less commonly) in (also occas. †for, †of, †to).
(c) In predicative use with with: skilled or highly competent at using, handling, or dealing with the specified thing. Originally in to be good with one's hands (see hand n. Phrases 3i).
The difference here appears to almost just be the prepositions themselves, which is a pretty disappointing answer.
But there is still a difference. Good at and good in refer to competence in an activity, whereas good with refers to competence at using something.
We can expand the examples you provide to demonstrate the difference:
Good at: "She is good at the activity of speaking English."
Good with: "She is good with the English language."
I struggle to find a meaningful difference between the two, or any situations in which one would apply but not the other. This difficulty, though, is perhaps due to the elision present with "English".
"He is good at child care" works while "He is good with child care" does not.
"She is good at hammers" doesn't work while "She is good with hammers" does.