I would recommend prefering one of the tryFind variants over TryGetValue. TryGetValue comes from the IDictionary interface that Map implements, so it’s the more C# approach. Working with an option type is more idiomatic and safer than getting a bool + a string which could be null whenever the bool is false.
Between the two tryFind variants, it’s largely up to preference, and to some extent, context. The Map.tryFind function is going to work better with function composition (>>), with pipelines (|>), and with the type inference system without needing an annotation (like let fn xs = Map.tryFind "key" xs compiles but let fn xs = xs.TryFind "key" doesn’t unless you add an annotation).
The myMap.TryFind method is going to work better with “fluent” C# APIs (like myMap.TryFind("key").AddService(myService).Build()) and is less total code.