Можно ли заменить всю TableModel в существующей JTable или мне нужно пересоздать JTable?
Вы можете установить новую модель, используя метод JTable.setModel()
JTable.setModel()
Проверьте Javadocs для деталей
Когда вы меняете модель, вы застреваете со старыми названиями столбцов.getColumnName() вызывается только при инициализации.
getColumnName()