If you are having trouble with the boundary mesh, you could try forming the full mesh with ToElementMesh. Just as an example with using an arbitrary .dxf file from the documentation:
First, load the mesh and view the wireframe:
<< NDSolve`FEM`
reg = Import["http://exampledata.wolfram.com/gear.6"];
mesh = ToElementMesh[reg];
mesh["Wireframe"]
Solve an arbitrary equation over that region:
sol = NDSolveValue[{Laplacian[f[x, y, z], {x, y, z}] == 0, DirichletCondition[f[x, y, z] == 0, True]}, f[x, y, z], {x, y, z} \[Element] mesh]
Visualize the result
ContourPlot3D[sol, {x, y, z} \[Element] mesh]
If you are still having problems, you may want to try using RepairMesh and FindMeshDefects while the region is still a MeshRegion and before you use ToElementMesh or ToBoundaryMesh
https://reference.wolfram.com/language/ref/RepairMesh.html
https://reference.wolfram.com/language/ref/FindMeshDefects.html
When using ToElementMesh and ToBoundaryMesh the options that control the Mesh Quality and the Mesh Order might be useful. These are discussed in the options section of those documentation pages:
https://reference.wolfram.com/language/FEMDocumentation/ref/ToElementMesh.html
There is also the Element Mesh Generation and Element Mesh Visualiation tutorials which are a part of the NDSolve tutorial which may be helpful as well with troubleshooting mesh generation.
https://reference.wolfram.com/language/FEMDocumentation/tutorial/ElementMeshCreation.html
https://reference.wolfram.com/language/FEMDocumentation/tutorial/ElementMeshVisualization.html