Hi,
I'm not too familiar with the integration into probe basic, but I'm pretty sure the surfacemap tab did work when it was released.
It's possible that posting your config might help narrow down any issues.
And can you show your halshow for the relevant pins when you believe it should be enabled?
Also, It is possible to use the compensation component standalone, with no involvement from probe basic, even if the process is slightly more manual.
Use the version from Scott's Repo and follow the instructions there:
github.com/scottalford75/LinuxCNC-3D-Pri.../master/compensation
For PCB milling, I think that this compensation component should work really well. Since the component is taking the current XY point and outputting compensation in Z, it's always 'playing catch-up' as the machine moves, but unless you're demanding very quick changes in the compensated value (think feeding fast over a rough surface) any deviation in the compensated position isn't really much of an issue.
I haven't tried any other compensation approaches, but G-Code Ripper with the Auto-Probe operation can warp your G-Code to the probed surface.
The version bundled with LinuxCNC is located in the /usr/lib/python3/dist-packages/qtvcp/lib/ripper/ directory (and you can run it standalone if you want).