Ein main-Element ist für eine korrekte HTML-Seite nicht erforderlich. Das kannst du also auch weglassen.
Eine id ändert an einem HTML-Element überhaupt nichts. Damit kannst du einem header-Element also auch keine bestimmte Bedeutung geben. Was für eine Bedeutung das header-Element hat hängt allein von seiner Stellung im HTML-Quelltext ab.
Innerhalb des main-Elements bezieht es sich auf das main-Element. Wenn du in deinem Beispiel das main-Element weglässt bezieht es sich auf die gesamte Webseite. Entsprechend sollte auch jeweils der Inhalt sein.
Wenn das header-Element bislang für die gesamte Webseite gedacht war hättest du es als direktes Kind vom body-Element in den Quelltext einfügen müssen. Wo es als direktes Kind vom body-Element steht spielt wiederum keine Rolle. Die Bezeichnung "header" sagt nicht aus, dass es sich oben im Quelltext befinden muss, sondern welche Informationen es enthält.