Creo que la solucion esta en usar Subconsultas en vez de uniones ....claro si tu manejador las soporta .....
en vez de hacer el
Código Delphi
[-]sql.add('select blablabala blal blala ')
Código SQL
[-]select * from trabajos where idtrabajos in
(select idtrabajos from remitos where remitos.idtrabajos=trabajos.idtrabajos)
claro esta veo que hay otra tabla involucrada asi que el lugar de la subconsulta colocas esa tabla con el join en cuestion y listo te salen solo los trabajos que tengan ocurrencia con la subconsulta del join y "voila" te evitas los duplicados......
Espero haber ayudado y lamento no entender mejor la estructura de tus tablas ....