strtok problem while parsing String
strtok() is a destructive function. It replaces the token with an end-of-string marker (\0). Thus once used the original string is irevocably lost.

Your first use of strtok() changes the string from:

*CRB12344,Temp25,Humidity55,CC5#\0


to:

*CRB12344\0Temp25,Humidity55,CC5#\0


Thus any future references to InputString only see up to the end-of-string marker:

*CRB12344\0


Instead you should use strtok() in a while loop to slice the string into tokens and examine what the token is:

char *tok = strtok(IncomingString, ",");
while (tok) {
    if (strncmp(tok, "*CR", 3) == 0) { // tok is *CRB1234
        // ... whatever ...
    } else if (strncmp(tok, "Temp", 4) == 0) { // tok is Temp25
        // ... whatever ...
    } else if (strncmp(tok, "Humidity", 8) == 0) { // tok is Humidity55
        // ... whatever ...
    } else if (strncmp(tok, "CC", 2) == 0) { // tok is CC5#
        // ... whatever ... 
    }
    tok = strtok(NULL, ","); // Note: NULL, not IncomingString
}