scanf("%d", &pesel[i]);
wczytuje Ci całą liczbę, jeśli nie jest rozdzielona białym znakiem, a nie pojedynczą cyfrę. Możesz użyć czegoś w stylu
scanf(" %c ", &pesel[i]);
pesel[i] -= '0';
Wtedy wczyta jeden znak. Spacja przed i po %c
jest po to, żeby zjadało line feed (enter) po ostatniej cyfrze i nie wczytywało go w następnym obiegu jako znak. ‘0’
odejmujemy, gdyż komputer wczytuje jedną cyfrę jako jej kod ASCII i trzeba odjąć kod zera, żeby otrzymać tę cyfrę.
Wtedy też będziesz musiał wyzerować tablicę pesel przed pierwszym użyciem:
memset(pesel, 0, sizeof(pesel));
Lub zadeklarować ją jako tablicę charów:
char pesel[12];
Dlaczego zwiększyłem rozmiar tablicy o 1? Gdyż wtedy będzie miejsce na ostatni znak ‘\0’
, co pozwoli ci wczytywać pesel w następujący sposób:
scanf("%s", pesel);
Potem jednak w pętli będziesz musiał poodejmować kody zera.
I mała uwaga na koniec: w konsoli być może nie będzie chciało ci “ogarnąć”, że wpisałeś ostatni pesel, w takim wypadku trzeba wcisnąć CTRL-Z i potwierdzić enterem (wysyła to znak końca pliku do programu).
Powodzenia 
BTW: Linijka
if(sprawdzenie(pesel)<=0) return 0;
pewnie nie spowoduje błędnej odpowiedzi w tym zadaniu, ale w takim wypadku powinieneś zgodnie ze specyfikacją zadania wypisać, że pesel jest błędny, a nie wychodzić z programu.