Правило звучит так (см., напр., словарь В. В. Лопатина, И. В. Нечаевой, Л. К. Чельцовой «Прописная или строчная?»): слова, обозначающие участки течения рек, пишутся со строчной буквы, если не входят в состав сложных собственных названий, напр.: верхняя Припять, нижняя Березина, но: Верхняя Тура, Нижняя Тунгуска (названия рек), Верхний Рейн (название департамента во Франции), Средняя Ахтуба (поселок).
Но при этом словари (в т. ч. упомянутый словарь) фиксируют написание Верхняя Волга, Средняя Волга, Нижняя Волга. Можно предположить, что такое написание обусловлено многолетней традицией употребления.
Корректны оба варианта: выбор порядка прилагательных зависит от того, какой аспект вы хотите подчеркнуть.
В «Справочнике по правописанию и литературной правке» Д. Э. Розенталя, в пособии Ю. А. Бельчикова «Практическая стилистика современного русского языка», а также в «Словаре географических названий» А. В. Суперанской указано, что такие названия не склоняются в сочетании с родовым словом: в городе Старый Крым, из города Великий Устюг, в городе Старый Оскол, над городом Лодейное Поле. В то же время «Словарь грамматических вариантов русского языка» Л. К. Граудиной, В. А. Ицковича, Л. П. Катлинской указывает, что в топонимах, выраженных сочетаниями слов, части наименования должны склоняться: в городе Вышнем Волочке, однако в разговорной и профессиональной речи распространился и укоренился несклоняемый вариант: под городом Вышний Волочек, в поселении Долгий Мост.
Поэтому рекомендуем несклоняемый вариант: в городе Верхняя Пышма.
Лучше всего: Строительство моста через Волгу в Костроме. Но и при употреблении с родовыми словами эти названия склоняются: через реку Волгу в городе Костроме.
Правильно с прописной: Средняя Волга.
Нет, это не плеоназм.
Кавычки не требуются.