I looked at how RedHeavenHero implemented it (mission 2) – in the end, it turned out to be much simpler than I thought. There, the garrison is simply assigned a city type. No complex scripts. I'll try to implement it now.
Added 40 minutes later
It turns out that the game consistently ignores the TownType parameter. I even looked in the Shared section of the garrison; there's an interesting parameter called TerrainAlign, which also doesn't seem to have any effect...
Added 1 hour 20 minutes later
Solution for future generations: you place an Outpost (for which city modifiers work), and then replace its model through Shared with what you need.
Auto-translated