Depois de ver um cara ser demitido porque ele usou ObjectInput/OutputStream com sockets e não sabia como resolver um problema sério de vazamento de memória (dica: use ObjectOutputStream.reset de vez em quando para resolver esse problema), eu fico com um pé atrás quanto ao uso desse tipo de recurso
De qualquer forma, em vez de enviar um objeto Cliente pelo socket, envie objetos Comando pelo socket, contendo dentro desse objeto os parâmetros.
Por exemplo, você poderia ter um objeto Comando que tivesse dois campos: o tipo do comando (Incluir/Excluir/Modificar) e os parâmetros (Cliente, String etc.)