Looking in System.Net.NetworkInformation.MibIPGlobalProperties.GetActiveTcpConnections(), I can see that the TCP socket status from /proc/net/tcp is parsed and directly interpreted as the enum System.Net.NetworkInformation.TcpState.
However, the order and numbering of the states in System.Net.NetworkInformation.TcpState is quite different from the linux TCP status listed here http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/net/tcp_states.h?id=HEAD.
This means statuses are incorrectly returned from GetActiveTcpConnections().
This is still an issue. An "Established" TCP connection is reported as "Closed" on Linux operating systems. More information here