An equivalent for Java's ConcurrentHashMap (or for that matter other collection types) may not exist in another platform, so the Coherence cache just persists the list of key-value pairs in the map. This is why you get a HashMap back.
A better way is to create your own map class based on ConcurrentHashMap (in the Java version) and your own serializer. Using the PofWriter.writeMap and PofReader.readMap methods you can arrange to get a ConcurrentHashMap back. If you then need a .Net version you can make your map class use whatever map works best in .Net, and provide an appropriate custom serializer.