You can save a custom type just fine, but loading it won't work.
I get why, when saving it you're passing the variable so it can enumerate the methods, but when loading it you're not passing the variable.
Could you make a sub to load data from a map, where we pass the destination variable to the sub so it can enumerate through the methods?
So this will work:
B4X:
type testype(Test as int, Test2 as int)
dim Settings as map, temp as int
Settings.initialize
temp.initialize
Settings.Put("Test", temp)
Settings.Load("Test", temp)