Django w żaden sposób nie przechowuje ani nie odczytuje bezpośrednio wartości sekwencji. Wyjaśniłem to np. w to pytanie:2088210/django-object-creation-and -sekwencje-postgres .
Postgresql inkrementuje sekwencję podczas próby dodania wiersza, nawet jeśli wynik operacji nie powiedzie się (podnosi błąd zduplikowanego klucza), inkrementacja sekwencji nie zostanie wycofana. To jest powód, dla którego to działa przy drugiej próbie dodania wiersza.
Nie wiem, dlaczego twoje sekwencje nie są poprawnie ustawione, czy możesz sprawdzić, jaka jest wartość sekwencji przed zrzutem i po przywróceniu, i zrobić to samo z max() pk tabeli? Może to błąd 8.1 z przywracaniem? Nie wiem. Czego jestem pewien:to nie wina Django.