Корректно: какой город достоин звания...
Склоняется только вторая часть: генерал-полковника, генерал-полковнику и т. д.
Сочетание адмирал флота пишется строчными: адмирал флота Кузнецов.
Приведенное Вами написание корректно.
Все эти звания пишутся строчными буквами.