Não tenho o código "fresco" na memória... mas na implementação atual dos Extratos, é necessário CFe e CFeCanc na memória...
Você poderia revisar os fontes de ACBrSATExtratoESCPOS e verificar os métodos que são chamados para a impressão do Cancelamento. Ex:
procedure TACBrSATExtratoESCPOS.ImprimirExtratoCancelamento(ACFe: TCFe;
.......
GerarCabecalho;
GerarTotais(True);
GerarRodape(False, True);
GerarDadosCancelamento;
....
end;
Verifique nos métodos acima, se é possível fazer IFs, modificando-os usando um Parâmetro de entrada.. Exemplo:
procedure GerarCabecalho(Cancelamento: Boolean = False);
Seria necessário substituir todos os campos que são impressos usando o CFe por CFeCanc... Exemplo:
FPosPrinter.Buffer.Add('<n>'+IfThen(Cancelamento, CFeCanc.Emit.xFant, CFe.Emit.xFant)+'</n>');