Ok after spending some time looking at the diagram, I think I have grasped most of it. It took some time to find the most centric classes: skillUser and skill, because they were one of the smallest boxes in the pdf.
In simplisity what you have is Skill and SkillUser which to my understanding is essentially something like unit/character. Then when skill is being used it is then being applied to other units/characters that you get from some sort of filtered list, that is determined by the skills characteristics (if skill is aoe or single target, etc.).
Now just some thoughts. How do you apply damage over time? Personally I would add debuffs or skills into the skillUser list that was affected by the skill, and then have some timer on the skillUser that loops through whole list of skills that the skillUser is being affected in certain intervals. For example once every 0.5s if real time, or once every turn change on turn based. Then when the debuff has run out, just remove it from the debuff-list. Although I do not know if this is a good way to do it or not. The dot system also probably needs to take some sort of snap shot from the character stats when the dot was applied to keep the damage same throughout the whole duration.
The debuff list is just bit annoying when you actually have multiple effects on you. If any of the things are additive (power +10, when this effect is on), you have to actually have some sort of back up of your base stats, and recalculate the stats every time you add or remove things. But if everything in your game/system works on multiplying, you can just keep the current value in memory and when effects endy reverse the calculations by just dividing it.