I don't see what goes wrong and I also forgot this window is the same regardless of resolution.
This should fix the wrong table being used (first python warning)
diff --git a/gemrb/GUIScripts/LUSpellSelection.py b/gemrb/GUIScripts/LUSpellSelection.py
index f24600afb..5340abc54 100644
--- a/gemrb/GUIScripts/LUSpellSelection.py
+++ b/gemrb/GUIScripts/LUSpellSelection.py
@@ -174,7 +174,7 @@ def OpenSpellsWindow (actor, table, level, diff, kit=0, gen=0, recommend=True, b
# adjust the table for the amount of spells available for learning for free
# bg2 had SPLSRCKN, iwd2 also SPLBRDKN, but all the others lacked the tables
- if SpellLearnTable == "MXSPLSOR":
+ if SpellLearnTable == "MXSPLSOR" or SpellLearnTable == "MXSPLSRC":
SpellLearnTable = "SPLSRCKN"
elif SpellLearnTable == "MXSPLBRD":
SpellLearnTable = "SPLBRDKN"
So you get the correct new spells amount on levelup. I doubt it will affect your gui error though.