In the * Creating Arrow Objects * and * Creating Skill Objects * sections you insert your objects data with the unique names you want for them. I used names like "MF_1" cuz are short and still descriptive for me about what are they doing.
You can name them like "FROSTBOLT_skill" or "FROSBOLT_arrow1", that is completly up to you.
For your first skill... "MF_1" => [1, 0, nil, nil, 3, 3, 1]
you are missing two skill ID level data:
"SkillObject" => [reqlvl, treepts, "dad", "mom", maxlvl, childreqlvl, idlvl1, idlvl2,...],
"MF_1" => [1, 0, nil, nil, 3, 3, 1, ?, ?]
If your maxlvl data is 3, you must enter 3 id levels. You stated that this skill has 3 levels and the script can't find the IDs for the next two levels, so is maxed.
This system uses a different skill in the database for each skill level. The reason:
For the error in your screenshot, looks like something is wrong in the arrows data. Show me your * Creating Arrow Objects * section if you can't resolve the problem.