COBOL is a standard language. As long as the language standard is followed, from the COBOL standpoint there is little difference between the different versions of COBOL. Some will have SCREEN SECTION for screen I/O, some will implement different DISPLAY / ACCEPT functions but all the basics (data types, Procedure Division verbs) will be the same (alhtough the I/O verbs can vary somewhat).
None of the PC compilers will be executable-module compatible with the mainframe; the underlying architectures are too different. So from this standpoint, no PC compiler will be "compatible with mainframes".
Asking for "the best" is like asking "how high is up"? The answer is ... it depends. By "best" do you want the fastest compile time? the smallest executable module? the fastest executing module? the closest to IBM Enterprise COBOL? most compatible with Windows? cheapest to purchase? some other measure you haven't described? And different compilers will do better at some of these criteria but none of them will excel at all of the criteria.
I've used the MicroFocus compiler in the past and it has a compile-time switch that allows you to follow Enterprise COBOL standards, for example. On the other hand, it was not cheap when I was using it -- something like $1000 per programmer IIRC. There's a COBOL for GCC that is free, but it generates C code that is then compiled through the GCC compiler -- totally different approach from the mainframe. Open COBOL is another free compiler, but it runs in CYGWIN so you must install that onto your Windows box, then run Open COBOL through CYGWIN not through Windows. But I've tested some mainframe programs under Open COBOL and in many cases the only thing that has to change is the SELECT statements (and sometimes not even them).