You can populate the list through the Message form itself--when you make a new Message, there's a slot at the bottom for the 'Buttons'; just put each Town's name in there, and then use conditions to determine when they come up (easiest way would be to see if the PC has the required key, but if they drop it or lose it... A better way would be to look at the House Purchase Quest, and see how it flags them as owned).
I'd do it something like...
Event OnActivate(ObjectReference Target) Button = MyMessage.Show() If ( Button == 0 ) ;Teleport to First House ElseIf ( Button == 1 ) ; Teleport to Second House ; And so on... EndIfEndEvent
MyMessage would be a self-contained Form with all six options (five Homes + Cancel) and the initial "Where do you want to go?" text.