I am using the great plugin language-mix for quite a while and having the same need described by the author the feature request “Group posts / show only the primary article“. Even if polylang pro has a feature to overcome this, I was not happy with buying the license for a small personal blog, and also not happy with the solution that involves many post duplication.
So I implemented it. It works by building an exclusion list of posts that are translated in the least wanted language to keep only the most wanted translation. This list is given to the query. By doing so, it will behave ok with pagination. The exclusion list is cached if the site does implement a persistent object cache.
I also added a settings page, to allow to customize the way the best language will be chosen, and enabling/disabling some features. It is so possible to set the original behavior of the plugin, or use the new features.
The GitHub repo for this new version : https://github.com/rpeyron/wordpress-language-mix
The WordPress new version announcement: https://wordpress.org/support/topic/new-version-implemented-show-only-the-primary-article/
Many thanks to Andriy Lesyuk for this great plugin (and for making it open source)