So I figured out why trains aren't showing up in free roam for some of us mod users. The game engine is only able to allocate a limited amount of memory for use (even if your rig has a massive memory pool, the game will still only use a small amount of it), when the game is already using most of that memory pool, it will avoid spawning in trains to preserve the remaining available memory space. This limitation doesn't cause any issues in the vanilla game, but it becomes issue when your baseline memory usage goes up due to mods.
The fix is pretty simple: you need to increase the RAM and VRAM allocation via a gameconfig.xml mod. I've been using "A Modest Memory Pool Booster for LML" from Nexus and it works great. Trains full of passengers spawn just fine now, even though I'm using about 20 different mods.
Just watch out for memory-heavy mods. Stuff like 4K textures and euphoria mods will probably still mess things up. The only memory-heavy mod that I run is Enhanced Entity and World Persistence because it's too good to pass up, but even with the memory fix, I still get spawning issues when too many dead bodies pile up in one area. When that happens, no new NPCs spawn until I move away.