They lived in a small town in England.

They lived at a small town in England.
They lived in a small town, England.

Which expression is grammatical?
Are all acceptable?

The first one is fine. The others aren't used.

=)

Out of the three expressions you provided, the first one, "They lived in a small town in England," is the most grammatically correct. This expression accurately conveys that the individuals lived within a particular small town located in England.

The second expression, "They lived at a small town in England," is not grammatically incorrect, but it is less commonly used. While it is possible to use "at" to refer to a location, in this context, "in" is generally preferred when discussing the place where someone resides.

The third expression, "They lived in a small town, England," is not grammatically correct. It appears to combine the structure of "They lived in a small town" with the addition of "England" as a separate phrase. To rectify this, you could revise it to "They lived in a small town called England" or "They lived in a small town in England."

In summary, the most grammatically correct expression is "They lived in a small town in England," while the other two expressions may not be as commonly used or could benefit from slight modifications.