O Django não mantém ou lê diretamente os valores da sequência de forma alguma. Eu expliquei f.ex. em esta pergunta:2088210/django-object-creation-and -postgres-sequences .
O Postgresql incrementa a sequência quando você tenta adicionar uma linha, mesmo que o resultado da operação não seja bem-sucedido (gera um erro de chave duplicada), a incrementação da sequência não é revertida. Então, essa é a razão pela qual funciona na segunda vez que você tenta adicionar uma linha.
Não sei porque suas sequências não estão configuradas corretamente, você poderia verificar qual é o valor da sequência antes do dump e após a restauração, e fazer o mesmo com o max() pk da tabela? Talvez seja um bug 8.1 com a restauração? Não sei. Do que eu tenho certeza:não é culpa do Django.