Не понимаю, как в одну переменную записывается 2 разных значения
People humanoid_1 = new People("Name1"); // humanoid_1 -> переменная раз
People humanoid_2 = new People("Name2"); // humanoid_2 -> переменная дваз
тобишь уже две разные переменные типа
People
.
Все типы значений являются производными от типа System.ValueType и размещают свое значение в стеке.
тобишь вы создали две переменны ссылочного типа
People
. А ссылочные типы хранятся в куче. А при создании объекта ссылочного типа
People humanoid_1 = new People("Name1");
в стеке помещается ссылка на адрес в куче.
Главный тобишь: у вас две кучи)