Unison will do this.
Inside the Unison folder that stores sync data (osx path:~/Library/Application Support/Unison), create two .prf files.
example1.prf
# Unison preferences file
root = /Users/XXXX/Desktop/a
root = /Users/XXXX/Desktop/b
perms = 0
#confirmbigdel = false
example2.prf
# Unison preferences file
root = /Users/XXXX/Desktop/b
root = /Users/XXXX/Desktop/c
perms = 0
#confirmbigdel = false
now run "unison example1" and "unison example2", all folders will sync.
You can take this a step further and have all folders update as soon as a file changes if you build unison from the latest svn. With the latest svn, you can use the flag "-repeat watch" (eg. "unison exampleX -repeat watch") to watch folders for changes, given the fsmonitor.py file is in the same bin directory that you are executing Unison from.
This also works over ssh if the same version is installed on all machines... A private dropbox, basically. It would probably be a benefit to have a server set up, always connected to the internet to accept changes at any time, all computers would connect to that one looking for changes.