W jednym pliku nagłówkowym wsadzasz deklarację poprzedzoną słówkiem extern. To będzie znaczyło, że w każdym pliku źródłowym, w którym będziesz includował ten nagłówek, będziesz mógł normalnie używać tych zmiennych globalnych, ale dopiero linker poda informację, gdzie one się znajdują w pamięci. A żeby się gdzieś znalazły, to musisz zdefiniować (tzn. to samo co w nagłówku, tylko bez extern) te zmienne dokładnie w jednym pliku źródłowym (np. tym z funkcją main(), jeśli są to zmienne używane rzeczywiście w całym programie).
Przypuszczam, że wcześniej definiowałeś te zmienne w każdym pliku źródłowym. Definicja może nastąpić tylko jeden raz.
Skoro dane należące do jednej klasy chcesz pokazać drugiej, wystarczy je przekazać przy wywołaniu funkcji (przez referencję najlepiej). A jeżeli dane te mają być współdzielone, to powinny należeć do jakiejś ogólniejszej klasy. Nie pisałem nigdy w Windows Forms (mają bardzo poważną wadę - działają tylko pod Windows), ale C++ to C++ i w tej kwestii to chyba nie ma tam różnic.
I miałem zgadywać, jaki błąd dokładnie popełniasz? Nadal tego nie wiem. Ja podałem ogólną zasadę, która zawsze działa, a jeśli nadal nie widziałeś błędu, to trzeba było pokazać (jak najmniejszy) kod, który się nie kompiluje.
Albo ja jestem tępy, albo Ty wyrażasz się niezrozumiale/nieprecyzyjnie. Nie mam pojęcia, czym jest seria danych w programowaniu - z takim terminem spotkałem się tylko przy wykresach.
Nie rozumiem, co dokładnie chcesz uzyskać i w jaki obecnie sposób to osiągasz.
Nigdy nie ma potrzeby korzystania ze zmiennych globalnych*. Dane między formatkami przekazuje się w argumentach metod albo w klasach pomocniczych i nie ma w tym zbyt wielkiej filozofii.
*a nawet jeśli by była, to w tak zaawansowanym przypadku, że nikt o to nie pytałby na tym forum.