Die Funktionen isDigit() und isAlpha() (deine isChar()) sind in der ctype.h definiert. Die brauchst du gar nicht mehr selbst schreiben.

Zum Programm selbst:
Da man anscheinend nur eine Rentenversicherungsnummer eingeben muss, wäre es doch besser, diese gleich als Parameter dem Programm zuzuweisen. Das spart die lästige Eingabe und man kann diesen Vorgang sogar automatisieren.
Breaks werden in der strukturellen Programmierung nicht gerne gesehen, da sie die Programmstruktur zerbrechen.

Zum Problem:
Dein Problem ist deine isChar() Funktion. C unterstützt keine Mehrfachbedingungen.
Der C-Compiler macht daraus folgendes:
aus if (64 < c < 91) wird if ((64 < c) < 91)

wenn ich jetzt nach einem kleinen d (dezimal 100) abfrage, passiert folgendes:
64 < 100 = 1
1 < 91 = 1

Nehm ich jetzt mal die Zahl 2 (dezimal 50), passiert das:
64 < 50 = 0
0 < 91 = 1

Das Ergebnis wird immer 1 sein.

Und deswegen führt er deine Abfrage nie aus.
Entweder du nimmst die vorhandene Funktion oder du schreibst:
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))

edit:
ein Char ist in C immer eine 1 Byte große Zahl.