I am going to speak towards your child's reactions to racial differences:
Physical differences exist in all of us. Some are short, some tall, some heavy, some slight. Some of us are darker skinned while some are fair. Our young children are not trying to be naughty when they point out our differences.
I am not justifying a child or an adult's behavior when they compare any person to an ape/monkey or describe or communicate those differences in hurtful ways. But a 3.5 y/o does not understand the context or implications of their words. They are not trying to be hurtful. *They* are simply saying it as *they* see it.
However, you and your family have the responsibility and ability to guide and direct his 'observations' in healthy and true directions. In fact, a black person does not resemble a gorilla any more than a white person resembles a goat. So, you get to clearly communicate to your child that no, the person they see does not look or talk like any of our primate cousins. They are a human. A man, a woman, a little girl, a little boy. (insert differences here.) And they/we have feelings, just like you and it hurts them/us to call or compare them/us an animal.
Show your son pictures of gorillas. Show him pictures of apes, horses, frogs, fish and cats. Explain to him the where animals live, how they eat, how they communicate amongst themselves, and how they are different to human beings. Show him and read him books about Asian, Middle Eastern, Sudanese, Egyptian, Mexican, Venezuelan, Native Alaskan, etc., people. Explain, ad nauseum, the differences between humans and other animals and then explain the physical and social differences between human races, nationalities, cultures, religions, creeds, ages, abilities, etc.
There is nothing wrong with you or your son. Neither of you is tainted or terrible. Education, immersion, tolerance and patience will solve this problem.
Our nation wants to pretend that we are color blind and that racism is no longer an issue. It is. Your son (and the rest of us) exist within the societal context of racism and general ignorance/misinformation/discrimination. That isn't any of our *faults* but is our responsibility to identify and correct. When we don't identify or correct our own misconceptions and privileges we are contributing to the problem. You are writing this and by doing so you are on the path to identify and correct a negative situation and cultural/social issue. Good for you for doing so.
Meet this head on and without fear.