This is a more intuitive answer, not backed by some statistical learning theory:

You want to implement an online model, i.e. you adapt your working model with new incoming data. So you keep the old, just change it a little. Now, the MinMaxScaler is arguably part of your model, so you should handle it the way you handle your model: keep the old, just change it a little. That means you should take your second suggestion in the OP: build the scaler with the concatenation of new and old training data.

When I build online models, I usually try to make sure that the model not just learns about the new data, but that it also forgets about the oldest ones. Adapted to your situation, that would mean to just shift a fixed-size time window over your data each month, i.e. take in the new month and throw out the oldest month. Then completely retrain your scaler and your model each month on the current window.