Como assinar o XML em um nó específico (Nota Fiscal)

Primeiro, começe com o básico, informe apenas um RPS dentro do LoteRPS.

Você vai chamar a rotina duas vezes.
Na primeira você passa a tag InfDeclaracaoPrestacaoServico.
Com o resultado do processamento, você chama a segunda vez passando a tag LoteRps.

Chame assim:

AssinarXML(tempFile, "#RPS1", "InfDeclaracaoPrestacaoServico", true);
AssinarXML(tempFile, "#LOTE1", "InfDeclaracaoPrestacaoServico", true);

O resultado assinado estará no arquivo tempFile.

Assim que estiver funcionando, você terá como fazer para mais de um RPS:

AssinarXML(tempFile, "#RPS1", "InfDeclaracaoPrestacaoServico", true);
AssinarXML(tempFile, "#RPS2", "InfDeclaracaoPrestacaoServico", true);
AssinarXML(tempFile, "#LOTE1", "InfDeclaracaoPrestacaoServico", true);