Now get the block reward from B2, or some other coin which depends on it. This block reward, and any coin which depends on it, will never be accepted by C1. Mix it somehow with your coins from wallet A, and send the result to W2. Wait a few confirmations for it to stick.
Now you have in C2 all your coins in W2, and in C1 all your coins are still in A (the A->W2 transaction can't be replayed in C1, since it depends on an invalid block). All that's left is to move all funds from A to W1; this will happen only on C1, since it would be a double-spend in C2.
As you can see, it's not that complicated. The only hard part, if you aren't a miner, is to get the "one-sided" coin, but I'd expect either a service to pop up soon to do the mixing for you, for not much more than the transaction fee (the "one-sided" coin can be recycled indefinitely), or a "faucet" to pop up on C2 to give out tiny "one-sided" coins for anyone who needs them, for free.
Indeed, but this is the kind of technical annoyance that cripples the "it just works" perception/marketing of BTC. I guess this is what makes people look forward to BTC ETFs as opposed to the real thing for their investo-gambling.
By "doing it by hand" I meant the following:
The problem is in such a scenario you can expect that malicious software will exist that monitors transactions being broadcasted in C1 to try to replay them in C2. By the time you attempt to perform the last step outlined above, you might find that the funds are gone from A in C2 because some replayed your transaction on C2 already.