Why 明 for tomorrow and next year but 下 for next month? I would like to understand why you can say 明天 and 明年 but not 明月, or why you can't say 下天 and 下年 but you say 下月. From the dictionary, 明 and 下 both seem to mean "next".

Maybe the logic behind is "just because the language evolved like this"? Like in english we say next month and next year but instead we say tomorrow.
The first impression in people's mind on the term 明月 is 'bright moon' not 'next month'. I can understand, to avoid confusion, people would choose to say  "下一個月" or "下月" instead of "明月"

We do say "下一年" or "下年" along with "明年" for "next year"

As for saying 明天/ 明日 instead of 下天/ 下日:

明天 is specifically referring to "the day after today" = "tomorrow". There can be no day between 今天 and 明天. 

Meanwhile, 下天/ 下日 sounds like you can fit some days in the middle, e.g. 下個下雨天. 下個元旦日. 

In any case: 

昨天|今天|明天

去年|今年|明年

上一年;上年|今年|下一年;下年

上一個月;上個月;上月|今個月|下一個月;下個月;下月

上週|本週|下週

上個星期;上星期|今個星期|下個星期;下星期

are all accepted terms by people.