I think I see what you're after.
Is it safe to say you just want to test on a slightly more realistic network with more than one participating node and more than one participating client?
If so, you should be able to separate the concerns.
Private Chain You can set up a private chain with three nodes. If the chain is working as expected, the contract you deploy on one node, will be mined by the miner (any node or nodes that are mining this chain) and will ultimately be deployed on all nodes when it gets mined. Same for the transactions and events, if any. Every node on an Ethereum network has the same view of the consensus data. It's just not possible to not have deployed the contract on all nodes.
Front End Truffle's (2.x) build process merges bootstrap code with your app and drops the merged file into into the
./build folder. It isn't concerned with how that code gets loaded into the browser.
The front end would typically be served from a consistent location, so using your build workstation as a web server is a valid option. You want to keep RPC on the default port 8545 or at least consistent on all clients, since the same front-end needs to work everywhere. I would stick with the default so one day it works in testnet or mainnet for people using default settings. It would be safe to say that your front end requires an Ethereum node with RPC on the default port.
Hope it helps.