Nie musisz tworzyć obiektu T1 w MainForm(). Tworzysz obiekt T1 tam gdzie jest ci on potrzebny. Pokaż, gdzie stworzyłeś obiekt T1? I dlaczego "nie działa" Form frm skoro MainForm dziedziczy po Form?
PS.
Mam wrażenie, że nie rozumiesz co robisz, a już tym bardziej nie znasz struktury projektu WinForms. Nie wiem jaki jest cel przekazywania całego okna do innej klasy, nie wiem jaki jest cel mieć dostęp do labelek z głownego okna. Dobrze by było opisać problem, bo może (a nawet na pewno) podchodzisz to swojego problemu źle 
Rozumiem co robię, ale rzeczywiście - struktury projektu WinForms nie znam. Dopiero poznaję.
Jak wpisałem jak podałeś Form _frm to mam 'Form' does not contain a definition for 'lbl1' and no accessible extension method 'lbl1' accepting a first argument of type 'Form' could be found (are you missing a using directive or an assembly reference?) i też mnie to zastanawia czemu, skoro MainForm dziedziczy po Form. W tej chwili wpisanie MainForm załatwiło sprawę i mnie to zadowala.
I teraz mam klasy T1 i P1 w osobnych plikach (nie dziedziczą po MainForm) i coś takiego:
Kopiuj
{
List<int> STable = new List<int>();
List<P1> P1s = new List<P1>();
...
}
W konstruktorze T1 mam te dwie listy oraz Form a właściwie MainForm przekazane przez this jak podałeś (wcześniej nie miałem).
Teraz jeżeli piszę:
Kopiuj
public partial class MainForm : Form
{
P1 p1 = new P1();
P1 p2 = new P1();
List<int> STable = new List<int>();
List<P1> P1s = new List<P1>();
//T1 t1 = new T1(ref P1s, ref STable, this);
public MainForm()
{
InitializeComponent();
GoFullscreen(false);
T1 t2 = new T1(ref P1s, ref STable, this);
}
}
to działa, mogę też dodać kolejny obiekt T1 t3 w MainForm_Load(object sender, EventArgs e), ale jak odkumentuję T1 t1 to mam:
A field initializer cannot reference the non-static field, method or property 'MainForm.P1s' , to samo dla STable a chcę mieć referencje, bo nie będę za każdym razem kopii robił. T1 ma modyfikować pola obiektów P1 w P1s (są zawarte odpowiednie metody) i cyferki w STable oraz Keyword 'this' is not available in the current context. A jeszcze dodam, że ja przerabiam projekt, który jakiś czas temu napisałem w C++ w konsoli i tam działał, tylko, że to wszystko mało przejrzyste było, wszystko w linijkach na czarnym ekranie wypisywać. Teraz próbuję to przerobić na fajny projekt z GUI, ale bezboleśnie to póki co nie przechodzi :)