All of the prepositions give grammatically correct sentences because a preposition can be followed by any noun, and "that she is good at speaking English" is a valid noun clause. However, the words "advantage" and "in" go naturally together, so that is the best choice.
The others sound awkward for reasons I don't fully understand. It may be due to the fact that "in that" is such a common construction.
If you replace the noun clause with "speaking English well", then you will have more flexibility:
Shally has an advantage over her classmates in speaking English well.
Shally has an advantage over her classmates at speaking English well.
Shally has an advantage over her classmates with speaking English well.