Hola Luis.
Un archivo GPX no es más que un XML con determinada estructura.
En mi caso, lo que he hecho es
importar un fichero GPX hasta un Dataset, pero el paso contrario es igual de sencillo.
Para ello he utilizado el
XML Mapper de Delphi.
Puedes revisar el proceso competo y descargar el código en esta entrada:
Cargar fichero GPX (XML) y acceder a los datos
Creo que no debe ser muy complejo, a partir de eso, generar el paso contrario.