You need some versatile and easy to use system. Making this is not about how you want to make it it is more how it can be implemented and then used without much hassle.
Best if it would be drag and drop system, so blueprintable components are best, however there is that developing pain of making this code actually work, trade of for not coding this same stuff countless times.
And to reinforce my point: you are thinking about how it should look ie copying ideas from Skyrim. Instead you should think how to code all of this first, ie. communication between parts of game, easy to use and expand, code this all once for everything, not once for each type of possible xp.
I have idea how to code it, but i also learned that explaining detains of how to code such system are usually are too early for people that are starting adventure with unreal engine.
So, learn blueprintable components, blueprint interfaces, dispatchers, inheritance. You need all of this to make flexible code, else you are doomed to code same things over and over in every corner of your game.