É muito provável que eu tenha que criar um extrator específico para cada tipo de PDV, certo? Ou é possível criar um "modelo geral" onde eu apenas adapto dependendo do sistema de origem?
Sim, você vai precisar de um extrator para cada tipo de PDV. Você pode seguir um padrão (interface se for usar orientação a objeto), implementar os extratores e decidir qual usar durante a execução do software.
Se forem parecidos, um modelo geral fica mais fácil de adaptar, mas acredito que os modelos sejam diferentes.
Você vai precisar analisar os modelos e ver se dá para usar um modelo genérico com poucas adaptações a cada modelo.
Qual linguagem vocês recomendam para construir esse tipo de extrator de dados?
A que você domina. Não adianta eu vir aqui cagar regra e dizer tal linguagem é melhor.
Especificamente no meu caso, eu preferiria fazer em Java porque é a linguagem que eu mais domino e é boa para aplicações comerciais assim como aplicações PDV. Mas se você tiver que aprender Java do zero, só por causa disso, pode não ser uma boa ideia.
Mas você precisa ver as tecnologias que já domina. Onde essa aplicação vai rodar (local, na rede, ou na núvem)? Se for local, o sistema operacional é sempre o mesmo em todos os PDV's? Você vai desenvolver sozinho ou será em time? Performance vai ser um problema muito grande ou tudo bem gastar um pouco mais de memória/processamento?