Wanted to say thanks to this thread I was able to solve this same issue on my machine.
I am also on a very large .NET 8 project, with one MSTest project covering almost all of the classes in a monolith .NET 8 app (> 10k tests!).
Same exact behavior - wouldn't hit breakpoints, would switch to debugging mode briefly and then back to normal almost immediately. One additional weird thing I noticed is that failed tests wouldn't get a red X on the line number of the failure.
It would hit breakpoints if I disabled nCrunch instrumentation, but the version of the file came from the nCrunch cache folder, not the project I was debugging, and thus didn't have code coverage or metrics displayed, no hover-to-inspect variables, and wouldn't show the breakpoints (despite hitting them). Disabling RDI also didn't help.
Cleared caches, reinstalled VS, reinstalled nCrunch, tried swapping versions. Wasn't able to repro the issue at all on small test projects, and no problem debugging other smaller projects.
Adding the MSBuild variable to use legacy symbols fixed it. Also seems to fix the lack of a red X on the code coverage column for tests that fail.
Thank you!