Por que no simplemente le pasas directamente el valor al arreglo bOpciones?
Código:
bool[] bOpciones = new bool(binario.Length);
for (int iCont = 0; iCont < binario.Length; iCont++)
bOpcion[iCont] = (binario.Substring(iCont, 1).Trim() == "0") ? true : false;
No lo he probado pero la lógica es esa, espero que esto te pueda ayudar.