Four options are provided (I only list the two that I find confusing):
1.張さんは木村さんに奈良を案内してもらいます。
This one is OK.
4.木村さんは張さんに奈良を案内してくれます。
This is wonky, should be あげます on the end.
The answer given is the 1st one, but I chose the 4th one and still don't know why it's wrong.
くれます doesn't work here because くれる contains the speaker's gratitude/emotion, so if you use くれます it's always something done by someone for you or yours. Note that 4. isn't grammatically wrong at all, it just doesn't fit the situation.
In the following situation it would work: I don't want to show Chou-san around Nara, and Kimura offers to do it for me, so I say to someone "木村さんは張さんに奈良を案内してくれます。" The reason it's wrong here is that it just doesn't fit the meaning required.