I think this is a fantastic idea... mostly because I do something very similar already with my friends. We set every Pokemon to level 50, and then increase their level depending on how low they are from OU. I see the major concern here would be a lack of stability, and I too would like to not enter a next battle with Mawile jumping 6 levels, only to have it fall 8 in the next match. (as unlikely as that is.) Therefore, here are some suggestions:
-Pick a specific increment to in/decrease levels by. The lower the number, the more precise adjustments can be. The higher the number, the more stability is created. I would go with something in the middle, like 5.
-Perhaps updates to levels don't occur every time usage stats change. Perhaps it takes 2, 5 or 7 days for levels to reflect usage stats.
-Let players easily see a list of all Pokemon and the level adjustments they get at that moment.
I hope this project goes well, and you can count on me as a future player of this epic tier.