Значания слов см. в окне «Искать на Грамоте». Верно: шампуры, такова литературная норма. Правильно: какого числа? какого года? каких лет? когда?. Сорок сороков значит 'много'. Слово сорок сначала обозначало набор мехов из четырех десятков однородных шкурок. В дальнейшем слово сорок приобрело отвлеченное значение, соответствующее четырем десяткам. Фразеологизм сорок сороков сформировался на почве терминологического устойчивого сочетания сорок сороков церквей. Так говорили о большом количестве церквей в старой Москве. Одним сороком называли примерно сорок церквей. С течением времени сорок сороков приобрело значение 'неопределенно большое количество'.
Названия такого типа рекомендуется склонять и без родового слова город, и в сочетании с ним (см. «Письмовник»).
Правильно: памятная медаль «160 лет обороны города...», памятная медаль к 160-летию обороны города...
Коректно: пакет молока за тридцать рублей.
Первый вариант по структуре предложения более логичен.
Разные справочники дают разные рекомендации (подробнее см. в "Письмовнике"). На практике названия городов из двух слов, если они следуют после родового слова город, чаще не склоняют.
Правильно: ...достопримечательностью Москвы. Зачем здесь слово город?
Правильно: по Москве, по г. Москве.