по фрагментам:
1 - тут вы создаете форму в 
локальной переменной 
form и отображаете как диалог. 
модально кстати, а не 
модельно.. если слово смущает, просто нагуглите 
модальное окно ))
2 и 3 - финт с 
var frm = this.Owner; избавляет от незнания переменной, указывающей на экземпляр класса. но именно тут и возникает ваша проблема
решения:
- попробуйте рассматривать переменные главного окна, как глобальные, по отношению ко всем порождаемым окнам/диалогам. тогда можно применить другой финт - описать в классе главного окна (здесь видимо 
frmLScheta) поля форм нужных типов (допустим 
frmSprStreet SprStreet). и пользоваться ими вместо локальных переменных. получится что то вроде
var frm = (this.Owner as frmLScheta).SprStreet;
но такой прием требует обязательной проверки на SprStreet на null
- более классический прием состоит в создании своего конструктора для дочерних форм (да вообще чего угодно), куда можно передавать и нормально типизированное значение главной формы, и сколь угодное количество смежных форм. естественно в классе должны быть предусмотрены соответствующие типизированные поля, куда конструктор и сохраняет эти значения (указатели по существу). проверка на null так же обязательна. ее можно выполнять в конструкторе, но надежнее в каждом методе, где такой указатель используется.
ps
1 - слышали понятие best practices?.. так во у вас bad practices.. попробуйте открыть 2 экземпляра frmSprStreet и работать параллельно. ну и быстро все поймете
2 
Ничего не понял
 выходит лукавите. поняли, но не очень удачно. при этом удаляете свой камент. да еще и 
медальку вешаете себе - тройное лукавство. фу