Which ports need to be opened in order to use Named Pipes
We had the same issue with legacy applications built around 1998-2007 when we ported SQL Server to a VLAN--for security purposes. Depending on which server we connected to we'd get spurious results--one would work and the other would not...because of a tighter VLAN configuration.

Our solution was to "bag" named pipes and to force TCP--as shown below. The SQL server port is denoted by XXXXX. This forced our legacy apps to use TCP no matter what. So far, it's fixed all our issues.

tcp:servername\instance,XXXXX