Would it be possible to modify the client to properlly handle multiple concurrent copies of a wallet? Or the protocol itself needs to be changed for that to work?
Each client would need to know which coins the other clients are going to use. You could do this by having the clients communicate with each other. You could also say that each client will only use some subset of coins. If Bitcoin allowed you to manually select which coins to send in a transaction, you could handle this yourself.
Other changes are needed, as well. For example, I'm pretty sure Bitcoin doesn't automatically detect when another running client sends coins in its wallet until after it is restarted.