Se você está recebendo erros de chave duplicados, então algo está gravando no escravo C (provável) ou você está executando operações de inserção / atualização não-determinísticas no mestre que não são replicadas bem no formato MIXED (improvável). Ter sync_binlog = 0 conjunto pode causar alguns problemas para você, mas eles provavelmente seriam raros e ocorreriam apenas em torno de falhas do servidor. Se forem verdadeiras consultas não-determinísticas causando um problema, você pode querer considerar binlog_format = ROW.
Independentemente disso, primeiro você precisa lidar com a sincronização dos dados. A maneira mais simples de fazer isso é apenas começar com um novo backup de B e certifique-se de MUDAR MESTRE PARA as coordenadas de registro binário corretas. Se uma restauração de um backup estiver fora de questão, você poderá investigar usando uma ferramenta como o mk-table-sync do maatkit.org. É uma ferramenta complicada, e se você não estiver lidando com TBs de dados, eu usaria um backup recente.
Em seguida, verifique se C está definido como read_only em my.cnf com e com
[mysqld]
read_only
e também executam isso no servidor
SET GLOBAL read_only=1;
No entanto, lembre-se de que read_only não se aplica a usuários com o privilégio SUPER, portanto, certifique-se de que ninguém, exceto o usuário root, tenha acesso e esteja usando usuários sem privilégios para consultar o banco de dados.
Honestamente, com apenas 7 escravos, eu ignoraria a complexidade da configuração de várias camadas e manteria tudo em um único nível. A sobrecarga por escravo não é cara, a menos que você esteja lidando com uma conexão de rede muito lenta no mestre. Você tem evidências de que o streaming de logs binários para escravos está causando uma degradação no desempenho?