I haven't updated the FGD yet, since I don't fully understand the process myself, but func_train has keys named 'noise' and 'noise1' that you can use to play custom sounds. The documentation
here is out of date, I think, since as far as I can tell 'noise' is the stop sound and 'noise1' is the start sound, with no clear way to play a separate sound effect for movement (or a way to stop a looping start sound when the train stops, which I thought might have been a nice workaround).
Right now I'm using a play_sound_triggered, set to the sound effect I want, and with a 'target' of my train so the effect plays from that entity's origin. I've also set attenuation ('speed') to -1 to play at full volume everywhere, since although the sound effect is only positioned at the train's starting origin, and doesn't otherwise move with the object.
If I had a better understanding of this I'd updated my FGD with the extra fields, but for the time being you can just disable SmartEdit in Jack and add noise and noise1 yourself, if you want them.
On the subject of my own map, between last week's distractions, this week's heatwave, and a general lack of ideas, I've gotten basically nothing done. I'm working on something now, but I wouldn't hold out much hope for it being done in time. I did Retro Jam 4 in 4 days, though, so fingers crossed.