Ну можно сделать класс на объекте что будет хранить лист с классами для улучшений или же поработать со Scriptable Object.
Ну а сохранять и загружать через JsonUtility как пример (это вроде для SO, тут идет запись в файл и вытаскивания из файла состояния SO)
using System.IO;
....
string _name;
public void SaveState()
{
var json = JsonUtility.ToJson(this);
File.WriteAllText(Application.persistentDataPath + $"{_name}.so",json);
}
public void LoadState()
{
var json = File.ReadAllText(Application.persistentDataPath + $"{_name}.so");
JsonUtility.FromJsonOverwrite(json, this);
}