No, children do not get confused about languages. Bilingual children speak at least two languages. Instead of confusing the two, they have to learn what language(s) they can use with each person. They start learning fairly early on (before age 2) but this can be influenced by the language situation at home. If some children go through a period in which they mix languages, this is nothing to be worried about. Eventually all bilinguals end up with at least one native language, possibly two. If parents and/or siblings use both languages in communicating with the child then the child will at first naturally assume that everybody is bilingual and that it can mix both languages when speaking with other people. It might take a little bit for the child to figure out that the daycare teacher only speaks English. But eventually it will happen (rather sooner than later). Keep in mind that no healthy grown-up bilingual mixes up languages when speaking to monolinguals.
A heritage language is a language learned the same way as a native language, but it is thought of as being learned in an incomplete manner. There are different degrees to which someone can be a heritage speaker. This can range from having only passive knowledge (understanding) to very advanced fluency (passive and active).
For example, a person can grow up in a house where his or her parents speak only Ukrainian, but outside the home everybody else speaks English. If the only Ukrainian input this person gets is from his or her parents then, this speaker will most likely become a heritage speaker of Ukrainian.
A bilingual speaks two languages. To what extent the speaker knows both languages may vary. One of the languages is going to be a native language. The proficiency level of the second language can range from knowing very little all the way up to having a second native language. Although technically all these speakers would be bilingual, very often the term “bilingual” is used for speakers that have a native or native-like level of language proficiency in both languages. The term multilingual is used to refer to people who speak two or more languages, being generally reserved for speakers of more than three languages.