BaseNextEXP := ExpTable[0][BaseLV];
if Job = 0 then i := 0
else if Job < 7 then i := 1
else i := 2;
JobNextEXP := ExpTable[i][JobLV];
という部分がありますが
ここで
ノービスはbaseEXPテーブルを
1次職はノービスのJobEXPテーブルを
2次職は1次職のJobEXPテーブルを読みこんでしまっているようです
解決するには
BaseNextEXP := ExpTable[0][BaseLV];
if Job = 0 then i := 1
else if Job < 7 then i := 2
else i := 3;
JobNextEXP := ExpTable[i][JobLV];
とjobに応じて与えられているiの値を全部+1すればOKです