start = new Element(dane, start);
должно быть
start = koniec = new Element(dane, nullptr);
Когда вы добавляете первый элемент, вы должны изменить первые и последние указатели.
koniec = new Element(dane, koniec);
должно быть
Element* temp = new Element(dane, nullptr);
koniec->nastepca = temp;
koniec = temp;
Когда вы добавляете новый элемент (кроме первого), вам нужно сделать так, чтобы старый последний элемент указывал на новый последний элемент.
Операции с указателями сложны, вы должны тщательно подумать о том, что вы действительно делаете. Это может помочь нарисовать диаграммы операций, которые вы кодировали. Таким образом, вы бы быстро увидели, что то, что вы закодировали, было неправильно.