When heterogeneous congestion control protocols that react to different pricing signals share the same network, the resulting equilibrium may no longer be interpreted as a solution to the standard utility maximization problem. We prove the existence of equilibrium under mild assumptions. Then we show that multi-protocol networks whose equilibria are locally non-unique or infinite in number can only form a set of measure zero. Multiple locally unique equilibria can arise in two ways. First, unlike in the single-protocol case, the set of bottleneck links can be non-unique with heterogeneous protocols even when the routing matrix has full row rank. The equilibria associated with different sets of bottleneck links are necessarily distinct. Second, even when there is a unique set of bottleneck links, network equilibrium can still be non-unique, but is always finite and odd in number. They cannot all be locally stable unless it is globally unique. Finally, we provide various sufficient conditions for global uniqueness. Numerical examples are used throughout the paper to illustrate these results.