Repeating what I think you want to make sure I understand: Server A only holds the data that was entered at Server A, but data can be inserted\updated\deleted on A or B. Z is a central subscriber to three of the A/B combinations so it's got a copy of everything. What I didn't catch is if a change made to A/B in one office should show up at the other two remote offices or just back at server Z.
Nevertheless, for the A/B bit of it you can make server B your publisher and use a parameterized row filter to control what gets sent back to Server A. Start by reading these BOL articles:
Parameterized Row Filters
Snapshots for Merge Publications with Parameterized Filters
I set up a test to answer this question and here's the important things worth noting:
1. I used HOST_NAME() in my WHERE clause for the row filter, like this:
WHERE HOST_NAME() != 'Server A' Substitute 'Server A' for your server's real name (really you can use any value you want because when you set up your subscription you'll have the chance to override the value used for HOST_NAME()). When I did it this way any data entered into Server A was uploaded back to server B and then deleted from Server A (because of the filter), so you will probably be better off if you have a column that you can use for the filter; your best bet would be a column that holds the name of the server where the data was entered, then filter on that column.
2. I set my articles to bidirectional and used "overlapping" for the partition option. If your partition option is set to non-overlapping you'll get conflicts when you enter data into Server A.
3. In the publication properties, data partitions page, select the checkbox to automatically define a partition and generate the snapshot when a new subscriber tries to synchronize. That will create subscriber specific snapshots for each distinct parameter used in the row filter.
Kendal Van Dyke