First of all you don’t necessarily need to save your highscore locally, the gamenetwork components will cache a highscore locally until a device is online and can send it to the backend (offline support).
For your use-case the best solution would be to use a new leaderboard for every month. You can automate that task by naming your leaderboards something like “<YEAR>-<MONTH>” and use that one for the reportScore function. With that approach you can also access past leaderboards at any time if you would ever need the ranking again.
Hope this answers your question?