Your challange is that you are attempting to show a logical path (connectivity which may be based upon protocols, sessions, conversations, etc) that is typically associated over a common physical link(s). As you're undoubtedly aware the very process of enabling an end-node to communicate can involve DNS(find end-node) server, AD server (authentication), Kerberos (security), Web (a very simple app), etc. Each of these typically has a set of tuple definitions in a Sniffer trace which can lead to several hundred flows. The solution I used was to a.) identify the possible route between end-nodes using a simple shortest-route and not attempting to take into account any weighted pathing the routers might apply and then b.) putting the individual physical path component onto a specific layer of the drawing. Obviously this puts the connector onto several layers simultaneously. I could then turn the layers on/off to show the data I wanted to present.
Short answer, for a simple node-to-node config use layers and it can be done manually, beyond that you'll need some interesting code (parsers for the trace analytics, path analysis for topology, visio logic for drawing).
hth,
al