The solution is not as easy as adding the conditional mapping. You would need to change your form to use forms-based workflow.
As I understand it, this is the scenario:
1. Your form submits to SharePoint. This creates version 1 of document called 32.
2. Sharepoint workflow happens. (Sharepoint owns the XML and DBXL is not involved.)
3. A user clicks to submit to DBXL. "Version 2" of document called 32 is created. But in reality, this is the first DBXL has seen of the xml, so it's simply saving it as it should.
4. DBXL maps to the SQL database
5. DBXL maps to SharePoint. This is where the duplicate comes from. And also, because of the SharePoint submit in #1, the Propagate Deletes will encounter issues because now there are duplicates.
Is the Sharepoint mapping on your doctype necessary? Removing this will solve the duplicates issue, but then the documents in Sharepoint will be out of sync with the documents in DBXL because there is nothing linking them. Sharepoint workflow owns one version and DBXL owns the other version. There might be a way to link the two but it will most likely involve code.