The issue was that we were creating temporary mesh copies and storing them in bmain and then later using BKE_mesh_nomain_to_mesh which would add them to bmain once more (duplicates). This would lead to crashes later as the custom data of the mesh could be trashed quite easily.