Two tips: 1) It sometimes helps to rephrase the sentence into an equivalent English-sentence that looks easier to analyze. 2) Often times, you can break down the sentence to make it easier to parse. If you have trouble wrapping your head around the sentence, try phrasing it in a slightly more suggestive way. For instance:
"Every grandparent is such that either they have only daughters, or they have exactly two sons, or they have no children."
In general, "Every $\varphi$ is such that $\psi$" gets translated into the predicate calculus as $\forall x (\varphi(x) \rightarrow \psi(x))$. Your $\varphi(x)$ here is "$x$ is a grandparent", whereas your $\psi(x)$ is "$x$ either has... (etc.)". So overall, the translation should look like this:
$\forall x(x \text{ is a grandparent} \rightarrow x \text{ either has only daughters, or exactly two sons, or is childless})$
So if you can figure out how to say "$x$ is a grandparent" and "$x$ either has only daughters, or has exactly two sons, or is childless", then you'll know how to translate the sentence.
How do you say "$x$ is a grandparent"? Basically, it amounts to saying that $x$ has some child, who also has some (other) child. So this just amounts to $\exists y (C(y,x) \wedge \exists z(C(z,y)))$. This formula (which has $x$ free btw) is your $\varphi(x)$, which goes in the antecedent of the conditional of your universally quantified sentence.
How do you say "$x$ either has only daughters, or exactly two sons, or is childless"? Well, it seems to be a disjunction about $x$, so split it up into cases: if you know the whole thing is a disjunction, you can tackle each disjunct separately and then put it all together with $\vee$s at the end. So you just need to analyze "$x$ has only daughters", "$x$ has exactly two sons", and "$x$ is childless". Hopefully, things are clear enough that you can do these on your own.
Your answers all look okay. Specifically for part c), you did indeed translate the sentence into predicate logic correctly. However, often times it is customary to not leave any negation symbols before the quantifiers. We can pass the negation symbol through the existential/universal quantifier by swapping them. For example
$$
\neg\exists x\in X(P(x))\iff\forall x\in X(\neg P(x))
$$
and
$$
\neg\forall x\in X(P(x))\iff\exists x\in X(\neg P(x)).
$$
Can you see how you can use this to simplify your answer for part c)?
Also, I personally think the discrete math tag is okay for a question like this, especially since you also used the predicate logic tag.
Best Answer
The book solution is missing a quantifier on $Y$. I can't see any reason for this except that it must be a typo.
All three solutions involve use of commas, which is not standard punctuation in logic, and may lead to confusion and mistakes if you use them without being very careful about which logical content you mean by them. It is much better to write exactly what you want with actual logical connectives.
Written out completely, your first formula would be $$\tag{1} \forall X.\forall Y.(\operatorname{mother}(X) \land \operatorname{daughter}(Y,X)\to\operatorname{love}(X,Y)) $$ and I would say this is a correct solution, under the assumption that you're working with a uniary "mother" predicate rather than, say, a "female" predicate to distinguish mothers from fathers. It's a bit asymmetric to have "daughter" relation that tells about the gender of the offspring but not of the parent, so arguably a nicer representation would be $$\forall X.\forall Y.(\operatorname{female}(X) \land \operatorname{female}(Y) \land \operatorname{offspring}(Y,X)\to\operatorname{love}(X,Y)) $$ but the choice of which predicates to use in the model is something different from how to use the chosen predicates to write formulas, and it is probably the latter that is the point of this exercise.
The formula (1) above is equivalent to $$\tag{2} \forall X.\big(\operatorname{mother}(X) \to \forall Y.(\operatorname{daughter}(Y,X)\to\operatorname{love}(X,Y))\big) $$ which I thought was what you mean by your second formula before editing the question.
But notice that writing everything out, one of your commas has become a $\land$ and the other became a $\to$. Commas as really don't work well as do-what-I-mean logical operators. (And they won't be accepted in a classroom setting where the point of the exercise is to show that you actually know what you mean).
With a $\land$ instead of $\to$ you get $$\tag{3} \forall X.\big(\operatorname{mother}(X) \land \forall Y.(\operatorname{daughter}(Y,X)\to\operatorname{love}(X,Y))\big) $$ which is not the same as (1) and (2). It says, instead that everybody is a mother and loves whichever daughters she has.
And your formula in the edited question $$\tag{4} \big(\forall X.\operatorname{mother}(X) \land \forall Y.\operatorname{daughter}(Y,X)\big)\to\operatorname{love}(X,Y) $$ doesn't work at all -- it puts the quantifiers inside the parentheses, so they don't range over $\operatorname{love}(X,Y)$ at all. This is the same as saying $$\tag{4'} \big(\forall Z.\operatorname{mother}(Z) \land \forall W.\operatorname{daughter}(W,Z)\big)\to\operatorname{love}(X,Y) $$ which says "If every two random persons are mother and daughter then $X$ loves $Y$" and depends on the context for telling us who $X$ and $Y$ are.