Добавить игровой стейт в котором будете включать/выключать паузу. Соответственно во всех подсистемах будете ссылаться на свой стейт а не опираться на Time.timeScale.
Как вариант, до отображения, сгенерировать шарики что выпадут на места удаленных. Потом проверить на наличие комбинаций, если их нет, то повторить эту процедуру.
Как вариант, можете попробовать записывать их в PlayerPrefs. Но, по вашему описанию, не совсем понятно когда они должны сохраняться. Между запусками уровней или между запусками самого приложения?
Есть варианты с тем, чтобы резать меш. Но, там, с большой долей вероятности упретесь в производительность, причем жестко упретесь. Поэтому единственный адекватный вариант, это использовать заранее нарезанные модели предметов.