No método remover precisar fazer uma verificação no indiceItem(diferente de -1 que significa que não encontramos o item na lista),pois se não encontramos o item na lista gera a System.IndexOutOfRangeException,com a verificação o código fica:
public void Remover(ContaCorrente item)
{
int indiceItem = -1;
for(int i = 0;i < _proximaPosicao;i++)
{
ContaCorrente contaAtual = _itens[i];
if(contaAtual.Equals(item))
{
indiceItem = i;
break;
}
}
if (indiceItem != -1)
{
for (int i = indiceItem; i < _proximaPosicao - 1; i++)
{
_itens[i] = _itens[i + 1];
}
_proximaPosicao--;
_itens[_proximaPosicao] = null;
}
}