Olá Gillian!
Sobre como cobrar: geralmente se cobra pela hora trabalho do time contratado. Sendo que a hora de desenvolvimento do projeto não é exatamente a hora paga à pessoa que desenvolve, você tem que calcular mais uma margem de lucro, e se possível uma margem de eventuais gastos (viagens, idas à reuniões).
Então se é um time de 3 pessoas que ganham R$50 a hora bruta, ficaria R$ 150 a hora + %lucro.
Sobre o tempo, um contrato pequeno, de 1 a 3 meses é o ideal, lembrando que o cliente precisa estar continuamente interagindo com o desenvolvimento do projeto, e decidindo eventuais mudanças de escopo. O que foi desenvolvido deve ser apresentado para o cliente com uma frequência, como prevê o método ágil. Assim o cliente consegue entender também cada etapa do desenvolvimento entendendo se vai ficar pronto ou não, e neste caso os porquês que não ficou pronto no tempo do contrato.
O contrato geralmente tem o mínimo de entrega (por exemplo funcionalidades muito básicas que dá pra entregar bem antes do tempo do fim do contrato), prevendo escopo aberto e possíveis renovações automáticas.
É típico dizer que não existe bala de prata pra alguém se "convencer". Algumas maneiras que vivenciei para mostrar que funciona foi, combinando com o cliente um bom planejamento de reuniões ágeis (planning, review, retrospectivas), e envolvê-lo no processo, tendo uma comunicação fluída/contínua (emails são muito burocráticos) e transparência - quadros/boards informativos do status do projeto, métrica etc...
A transformação ágil exige uma mudança de comportamento e cultura pessoal, tanto de quem cuida dos métodos ágeis (scrum master/ agile coach), quanto do time de desenvolvedores, e do cliente.
Bom espero ter dado aula luz!
Boa sorte, abraços :)