How can I add a city to my list and create a corresponding if-then string?
Your code doesn’t need to rewrite itself. else already takes care of all cases that are unaccounted for:

property cityList : {"City A", "City B", "City C", "New City"}
set choice to choose from list cityList with prompt "Choose your city:"
if choice is false then
    error number -128
end if

set city to choice as string
if city is "New City" then
    set lat to my customLat()
    set lon to my customLon()
    set city to my customCity()
    set x to the length of cityList
    set the end of cityList to "New City"
    copy city to item x of cityList
else
    set lat to 1
    set lon to 1
end if