I have the same issue, it seems for me it “appears” to be be related to Authorizenet plugin…
In the past I would have duplicate orders however not duplicate within woocommerce but duplicate within authorize.net, like 2 orders get submitted to authnet but only 1 is visible in woocommerce order screen..
Then i stopped using authet for a while, for other reasons…. and it seems to not happen any more, then I recently went back and now authnet has 2 different orders, from 2 different customers with the same order number… however just 1 of these orders is visible within woocommerce.
What payment gateway plugin(s) are you using
Who is your webhost
Do you have any special/custom code on your checkout process?
I use authorize.net gateway
I use wpengine as a host
I do have custom code on checkout process, however in the past when i first experienced this problem I did not have custom code.