Почему деструктор выполняется раньше конструктора копирования?
List<size_t>& newList(size_t a) {
	List<size_t> result;
	result.pushBack(a);
	return result;
}
Вы возвращаете ссылку на локальную переменную. Так делать нельзя, т.к. при выходе из области видимости переменная удаляется, и ссылка будет указывать на мусор.
Слегка поправил ваш код: https://ideone.com/tKCwpR . Там конечно ещё всё очень и очень далеко от идеала, конечно же...