1)
How can it be that Tzidkiyah was 21 when he became king? Shalum is Yeho'achaz, Yoshiyah's youngest son, and he was 23 when he reigned. Tzidkiyah was older, and he reigned 11 years later!
1.
Radak (Melachim II, 24:18, citing Ibn Ezra): Tzidkiyah first ruled for three years in his father's lifetime [and ruled totally, after Yechanyah was exiled].
2.
Malbim (Melachim II, 24:17, citing Mahari): This is a different Tzidkiyah, i.e. Yehoyakim's son. Refer to Melachim II, 24:17:2:1.
3.
Radak (Melachim II, 24:18): Shalum is not Yeho'achaz, rather, Tzidkiyah (Horiyos 11b) or Yehoyachin. Malbim (Melachim II, 24:17) - he was another son of Yoshiyah. Chazal said that Yochanan is Yeho'achaz; he was born before Tzidkiyah.