I have similar problems and I really miss nondestructive booleans, but your's is kinda easy to fix.
Let's say you have this ugly topology here:
If you still have the original scanned mesh in place, you don't need to do this: Select all the tris, duplicate them and separate them into their own object. Then extrude and scale both rims to have more surface area.
Go back to your original mesh. Make a cut with the knife tool and get rid of the bad topology.
Select both edgelines and bridge the edgeloops. Now is a good time to assign the top verts to a vertex group. Depending on your mesh, the 'Limit' value of the modifier might suffice and a vertex group will not be necessary.
Give your mesh a shrinkwrap modifier set to project, let it only affect your vertex group and play with the settings until you get this trainwreck.
Turns out the Shrinkwrap doesn't like to project on edgelines that fit perfectly. Move it a tiny bit, any amount will do.
And this is the result. A clean topology, ready to be bevelled.
Sometimes a Shrinkwrap is much better than a Boolean Modifier since it doesn't destroy the topology.
These settings worked for me:
Wait, did I mention that there's another way of doing this? No?
Well, there's another way of doing this.
Ugly mesh again. New one since I forgot to copy the first one.
Select all the top verts and hit X 'only Edges and Faces'. That kills all connecting edges up there. It isolates all of the rogue topology from the edges that rise from the bottom of the mesh.
Hover over the base, hit L to select the important part of the mesh and hide it with H
Select the rest of the verts and utterly delete them. Reveal your mesh with ALTH.
Select the base and hide it again. Switch to top view.
Select all the inner verts, turn them into an ngon with F and delete the ngon with F 'only faces'.
Do the same for the outer verts, select both rings and bridge them with SPACE 'Bridge Edge Loops'.
Select the whole mesh, hit F to fill all the holes and CTRL-N to recalculate normals.
That one helped: Fastest way to turn a ring of unconnected vertices into an edgeloop?