Solution 1:

It really depends on the situation.

But if you're just asking about grammar, all of your sentences are right and in use except A, B and G.

These are the reasons:

  1. "at" and "on" are both used. The former in British English and the latter in American.

  2. Cambridge Dictionary recognizes "at weekends" but not "at the weekends."

  3. It isn't always so but "the weekend" refers to a specific weekend while "(the) weekends" means every weekend.

With the last, you can determine which one is "better" depending on your context.

Sources:

Cambridge Dictionaries

Merriam-Webster Learner's Dictionary

Solution 2:

Everybody is missing the main point. The usage of prepositions is idiomatic. So it varies depending on the speaker.

"At the weekend", "at a weekend" and "at weekends" are used in British English; "on the weekend", "on a weekend" and "on (the) weekends" in American English.

Generally speaking, words which refer to a period of time take in, like "in the morning", "in the month", "in the daytime" etc. Words which refer to an exact point of time take at, like "at 9 p.m.", "at dinner", "at Christmas", "at noon" and so on. Words which refer to a day or date take on, like "on Monday", "on 18th", "on Tuesday morning" etc.

So according to this rule the word "weekend" should be the object of "in". But it is not. We have never heard "in the weekend"!

So the answer is the usage of preposition is merely idiomatic.