I don't know if this is intentional but in your SkillStorage, method writeNBT you kept rewrite/override the value of "xp", "static", and "dynamic".
I guess what you are trying to do here is something like:
for(int i = 0; i < 26; i++)
{
data.putInt("xp" + i, (int) instance.getXp(i) * 10);
data.putInt("static" + i, instance.getStaticLevel(i));
data.putInt("dynamic" + i, instance.getLevel(i));
}
so does writeNBT(), you assign the same value to every slot or whatever it is.