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);