Também estou passando pelo mesmo problema. Só que executar a função de montar o nosso número não resolveu. O que acontece é o seguinte...
Tenho dois boletos no arquivo de retorno. Na verdade tenho vários, mas para resumir, vamos colocar apenas dois como exemplo. No arquivo de retorno, um dos boletos está com o nosso número 000000032452 e o outro está com o nosso número 00000003224P. Quando o ACBr lê o arquivo de retorno, ele coloca apenas números na propriedade NossoNumero. Na verdade a função DefineNossoNumeroRetorno retorna o nosso número correto. Porém, quando seta o valor na propriedade NossoNumero, ele deixa apenas números. O primeiro fica com o nosso número 000000032452 e o segundo fica com o nosso número 000000003224. Como o tamanho máximo do nosso número é 12, o segundo, no qual o dígito verificador é a letra P, fica com 11 caracteres. Mas é completado com um zero a esquerda para ficar com 12. Já o primeiro, que possui o digito verificador igual a 2, fica com 12 caracteres, no qual permanece o mesmo.
O problema é o seguinte: Se eu executar a função MontarCampoNossoNumero, o ACBr irá pegar o nosso número que está no título, e gerar o nosso número completo com o dígito verificador. No segundo boleto, que o digito verificador é a letra P, irá ficar correto, pois o nosso número está correto, visto que foi tirado o digito verificador ao setor o nosso número na propriedade NossoNumero. Porém, no primeiro boleto, o nosso número montador irá ficar errado, visto que o digito verificador foi incluído no nosso número, pois não foi removido, visto que era um número.
Então gostaria de uma ideia de como proceder nesse caso.