It appears that something is interfering in the pagination (the duplicates appear in subsequent pages of results, but never in the same page).
If you disable the pagination so that all results are shown, no duplicates appear.
To identify what is interfering in the pagination, it's necessary to test after switching theme to twentynineteen and to disable non-Toolset plugins.
Can you first test the theme.
The difficulty with disabling the non-Toolset plugins is that you are using metabox to create the CPT. I don't know if it could be interfering in the queries for the post types it creates.
You could temporarily disable metabox, add Toolset Types to your site and use it to create the Works CPT (just be sure to give it the same slug, then it will work with your existing Works posts), then test again.
I created new custom post types with both metabox and types.
created a new view
added MANUALLY 10 posts to those custom post types
there was no problem with duplication
BUT
when I imported 100 records with WP ALL IMPORT (only title) in those two custom post type
the problem of duplication appeared
so I wonder now how "wp all import" way to create new post could affect toolset view (it just creates 100 post with just the title nothing more)
- - -
update 2
I trashed the 100 new post.
then restored them one by one
there are some post that cause the duplicated issue while other works fine.
not sure why. they have only the title.
- - -
update 3
the problem seems to occur after 15 posts whenver they are created manually or with wp all import
I did quite a bit of testing in my local copy of the site and couldn't determine the problem, so I've passed it to my colleagues in second tier so that they can do some deeper debugging, and I'll let you know what they find.
I did notice that ordering the results by post_id instead of post_date seemed to eliminate the problem, which you might adopt as a workaround in the meantime (if you can confirm).
It seems related to having imported the data and many of the posts have identical dates, which is introducing the difficulty of ordering by date when the dates are the same, in combination with pagination.
As Views is basically a UI-friendly wrapper for the built-in WordPress WP_Query class it may be an underlying problem with that, which you could test by setting up a custom query in PHP that doesn't use Views.
In any case, it can be solved if you order by post_date but include a secondary orderby setting, e.g. by post_date then by post_title.
My colleague found that that removes the duplicates.