I don't know how to fix this, but I think I know why it's having problems, as this is similar to a problem I have.
Each AddtoCartForm does a validation, and the name of the "form" is based off of the ProductID & VariantID, so if you try to add two for the same product, the validation fails and causes the button not to work.
At least that's the case for me. On a CategoryCondensed page, there are a few products that are mapped to several of the categories, so when they are all on the same page, the validation fails because they are "duplicate" even though I want them on there more than once.
Anyone else know how to get around this?
8.0.1.1 ML C# - Production
9.0.1.2 ML C# - Development