Yeah, I get the same results.
I don't understand the logic of that script, or perhaps I don't understand the protocol. Looks like you send EOF to a node with netcat and wait 2 seconds for a response then terminate the connection. The script will wait up to 10 seconds to establish the connection. If the witness doesn't return a string the script result is failed otherwise it's ok.
Is EOF End of File or End of Frame? Either way the witness is supposed to respond to basically null data with an ack of some sort?
As I said I get the same result as you, yet as you say the nodes are all talking. Sorry if this sounds negative, but this is pretty much what frustrates me about how the devs in this community communicate. It's just too terse and abbreviated and I struggle to follow as a result. I think it's safe to say if transactions weren't being processed the indication would be more obvious.
You clearly have deeper knowledge of BitShares internals than I do, but I'm afraid you'll have to provide a few more details before I'll understand what the issue is. As for monitoring my nodes I am using wackou's bts_tools which is far more comprehensive at monitoring the nodes than I've seen from other sources. Not saying it's the best at it, there may be other tools which are better but I haven't seen them described or documented as well as bts_tools. The tools could use some refinement, but no code is perfect.
If you want me to do other tests or want me to check anything just let me know and I'll do my best to help you out.