No te endendí bien tu algoritmo, pero de lo que entendí no podrías corregir, solo detectar.
Para detectar y corregir precisas un código con al menos distancia 3. Si comenzas con un código completo (distancia 1) y le agregás un bit de paridad terminás con un código de distancia 2 que te permite detectar pero no corregir.
Saludos,
Gustavo