We need $7$ non-terminals. $S$ is the initial state, $T,\ U,$ and $V$ all indicate that an odd number of characters have been read, and that the last character read was $a$, $b$, or $c$, respectively. Similarly, $X,\ Y$, and $Z$ indicate that an even number of characters have been read, and that the last character read was $a$, $b$, or $c$, respectively. I use $\lambda$ for the empty string. $S,\ X,\ Y$, and $Z$ are accepting states, so we have the productions $$S\to\lambda\\ X\to\lambda\\ Y\to\lambda\\ Z\to\lambda\\ $$
Also we, have $$S\to aT\\S\to bU\\S\to cV\\T\to aX\\T\to cZ\\U\to bY\\U\to cZ\\V\to aX\\V\to bY\\V\to cZ\\$$
I trust you see how I arrived at these. If we get a $b$ in state $T$ or an $a$ in state $U$ then we've seen a forbidden substring, so there are no productions corresponding to these possibilities.
It remains to determine the productions with $X,\ Y$ or $z$ on the left-hand side. I leave it to you to supply those.
EDIT Reading this over, I see that I've slipped into the language of automata at times. I hope it's obvious what I mean. If not, ping me.
EDIT
When I wrote this, I though you were mainly concerned with whether or not the language is regular, but it's apparent from your comments that you're mostly concerned with getting a regex. Remember that the complement of a regular language is regular. So we want the complement of the union of
-set of strings containing $ab$
-set of strings containing $ba$
-set of strings with an odd number of characters
So, if you can make regexes for these three languages, you can combine them to construct the regex you seek.
EDIT
The previous edit is wrong. The discussion prior to theorem $4.5$ in Hopcroft, Motwani and Ullman says that you can't do it that way. You have to convert the regex to a DFA, construct a DFA that recognizes the complement, and then convert the new DFA to a regex. I think any regex for this language will be exceedingly long and complicated.
There are a few errors.
2(i) isn’t right: the $(a^*b)^*$ term in $s$ accepts the empty string. However, $s$ does not accept $aa$, which is accepted by $r$.
2(iii) isn’t right: the empty string can be expressed in both.
Another possibility for 2(iv) is $bbaa$.
3(i) is correct but can be simplified to $(b^*ab^*ab^*a)^*b^*$, and $(b^*ab^*ab^*ab^*)^*$ also works.
3(iv) isn’t right: it doesn’t recognize $baaaabaaa$, for instance. $a^*(baaaa^*)^*$ will work.
Best Answer
Your answer to 1 is almost correct: It does not accept strings with zero $a$s such as $bc$. And it does not accept for example $acba$. Try something like $$ [bc]^*(a[bc]^*a[bc]^*)^*$$ Based on this, you should have littel problems to find a regex for $4k$ number of $b$s and then $4k+1$ number of $b$s
For the third task, first solve "length equals $3$", then star