This has not been a good week! A global re-sync route that synced main users to their meta equivalents (which itself needed to happen because the profile image code is icky) had a code path that persisted rep to the database of wherever the route was executed rather than the one we were supposed to be operating on.
In this case I was syncing Stack Overflow to Meta Stack Overflow but executing the route via Meta Stack Exchange - that meant that user ids from Stack Overflow ended up trampling rep on their Meta Stack Exchange equivalents. Fortunately we have ample history to restore rep to its correct value - that process is wrapping up now and we'll remove inadvertently granted "Yearling" badges when it's done.
UPDATE
Inadvertently granted yearling badges have been revoked, things are back as they should be.
Apologies for the surprise!