Auch ich habe keine Lust das ganzen durch zu gehen. Aber hier solltest du es ein wenig mit reduzieren können.

test.c:36: error: 'wort' undeclared (first use in this function)
test.c:36: error: (Each undeclared identifier is reported only once
test.c:36: error: for each function it appears in.)

...
do { SerRead(wort[16] ,15,0);
} while( getchar()!='\n');
...
Die String "wort" besteht nicht in dem void Funktion "neuerKnoten". Es ist zwar als Teil von den Struktur "knoten" definiert. Aber das ist kein Speicherplatz.

Code:
struct knoten {
    char wort[16];
    struct knoten *next;
};

test.c: In function 'loescheKnoten':
test.c:45: error: invalid initializer
test.c:45: error: expected ',' or ';' before 'else'
test.c:50: error: expected '}' before 'else'
test.c:44: warning: unused variable 'tmp'
void loescheKnoten(char txt[]){
KnotenPtr_t hilfZeiger1;
KnotenPtr_t hilfZeiger2;
if(anfang != NULL){
char tmp[] = anfang->wort //Hmm, gehört hier nicht ein ; und } wenn dannach ein else if-Zweich anfangt?
else if( strcmp(txt[], tmp[]) == 0 ){ // [] ist nicht notwendig wenn du den gesamten Strings bedeutest. Hier oben aber schon.
...