Karpas is the very first symbolic food we eat at the seder; Haroset is the last. We are often told that karpas is a symbol of spring, and haroset is a symbol of the mortar Israelites used to build Egyptian cities. There are many additional layers of meaning beneath the surface.
Karpas
(2) [Take from the greens less than a kazayit - so that you will not need to say the blessing after eating it; dip it into the salt water; say the blessing "who creates the fruit of the earth;" and have in mind that this blessing will also be for the bitter herbs. Eat without reclining.]
(ו) ח֣וּר ׀ כַּרְפַּ֣ס וּתְכֵ֗לֶת אָחוּז֙ בְּחַבְלֵי־ב֣וּץ וְאַרְגָּמָ֔ן עַל־גְּלִ֥ילֵי כֶ֖סֶף וְעַמּ֣וּדֵי שֵׁ֑שׁ מִטּ֣וֹת ׀ זָהָ֣ב וָכֶ֗סֶף עַ֛ל רִֽצְפַ֥ת בַּהַט־וָשֵׁ֖שׁ וְדַ֥ר וְסֹחָֽרֶת׃
(6) [There were hangings of] white cotton and blue wool, caught up by cords of fine linen and purple wool to silver rods and alabaster columns; and there were couches of gold and silver on a pavement of marble, alabaster, mother-of-pearl, and mosaics.
Maarechet Heidenheim on Pesach Haggadah, Karpas 1:1
By dipping the greens in salt water or vinegar, he still remembers the time when he was humbled while in Egypt and that God took us out of subjugation so that we could reach this exalted level. The dipping of karpas alludes to two opposing ideas, subjugation and freedom. First it symbolizes subjugation when our lives were like the vinegar or the salt water, and in the end it symbolizes the merit of dipping the hyssop when we fulfilled the commandment of placing the blood on the doorposts of our homes, so that Israel was saved from the death of the first born and afterwards they went forth to freedom.
Maarechet Heidenheim on Pesach Haggadah, Karpas 1:1 (by 19th C Frankfurt Rabbi Tevele Bondi)
(1) Karpas: One dips green vegetables in salt water to symbolize that like karpas, we must undergo an entire immersion of one's body for the purpose of a complete purification...This is an allusion to the fact that the Israelites were idolaters while they were in Egypt. When God took them out of Egypt in order sanctify them by giving them the Torah, it was necessary first to remove the impurity that was upon them and to have them perform complete repentance. One immerses the greens to symbolize the Baal Teshuvah (repentant) who is as humble as the plants in the field which are trampled underfoot. The greens are called karpas, which comes from the word for trampled over; or it is related to the word refes, spelled with a shin instead of a samech, which is the word for mud or earth.
Haroset
Rambam on Mishnah Pesachim 10:3:8
Charoset is mixture which has acidity in it and something similar to straw, and this is memory of the mortar. And we make it like this: Soak figs or dates and cook them and pound them until they are wet and knead them with spikenard or hyssop or something similar, without grinding them. And Rabbi Eliezer said that charoset is a mitzvah and in his opinion, one would need to say a blessing "who has commanded about eating charoset" and that is not the halakha.
One must submerge it in the ḥaroset, due to the kapa in the lettuce... Actually, I will say to you: According to the halakha, one need not submerge the lettuce in ḥaroset, and the kapa dies from the smell of the ḥaroset... And Rav Pappa said: A person should not leave bitter herbs in the ḥaroset for a lengthy period of time, lest the sweetness of the spices in the ḥaroset nullify its bitterness. And the bitter herbs require a bitter taste, and they are not bitter when marinated in ḥaroset.
Rabbeinu Chananel on Pesachim 115b
Kappa- A worm, as is taught in the Tosefta
One must dip it in the charoset because of the Kapa- A poison in the lettuce, since the burning effect of lettuce is the result of a poison that needs to be neutralized, just like with onions.
Talmud Bavli Pesachim 116a:2-4
The mishna states that they bring the ḥaroset to the leader of the seder, although eating ḥaroset is not a mitzva. The Gemara asks: And if it is not a mitzva, for what reason does one bring it to the seder? Rabbi Ami said: It is brought due to the poison in the bitter herbs, which is neutralized by the ḥaroset. In this regard, Rav Asi said: The remedy for one who ate the poison in lettuce is to eat a radish. The remedy for the poison in a radish is leeks. The remedy for the poison in leeks is hot water. A remedy for the poison in all vegetables is hot water. The Gemara comments: In the meantime, while one is waiting for someone to bring him the remedy, let him say the following incantation: Poison, poison, I remember you, and your seven daughters, and your eight daughters-in-law.
The mishna states: Rabbi Elazar, son of Rabbi Tzadok, says that eating ḥaroset is a mitzva. The Gemara asks: What is the nature of this mitzva? The Gemara answers: Rabbi Levi says: It is in remembrance of the apple, as apple is one of the ingredients in ḥaroset. The verse states: “Who is this who comes up from the wilderness, reclining upon her beloved? Under the apple tree I awakened you” (Song of Songs 8:5), which is an allusion to the Jewish people leaving Egypt. And Rabbi Yoḥanan says: The ḥaroset is in remembrance of the mortar used by the Jews for their slave labor in Egypt. Abaye said: Therefore, to fulfill both opinions, one must prepare it tart and one must prepare it thick. One must prepare it tart in remembrance of the apple, and one must prepare it thick in remembrance of the mortar.
It was taught in a baraita in accordance with the opinion of Rabbi Yoḥanan: The spices used in the ḥaroset are in remembrance of the hay that our forefathers used for building in Egypt, and the ḥaroset itself is in remembrance of the mortar. Rabbi Elazar, son of Rabbi Tzadok, said: When selling ḥaroset, the small shopkeepers in Jerusalem would say as follows: Come and take spices for yourselves for the mitzva.
In Masechet Sotah (11b) we read that the women of Israel would give birth under the apple trees without any pain, which allowed them to give birth without the Egyptians knowing.
One must prepare it tart and one must prepare it thick- In the Yerushalmi it also says that it is supposed to be a remembrance of the blood, and therefore we call the act "dipping" like we call it with a liquid. This is a matter that the people follow, adding wine and vinegar at the time of eating to make the consistency more liquidy. I have found additional positions in the Gaonim which say that charoset should be made of the fruits that greeted the Israelites when they came into the land of Israel, as the Song of Songs mentions apples, pomegranate, fig, dates, nuts and almonds.
Shulchan Arukh, Orach Chayim 475:1
Afterwards you should take a kazayit of maror and fully submerge it in charoset, but you shouldn't leave it in there because it might nullify its bitterness, and for this reason you need to shake off the charoset from the maror. You then must say the brachah, "al achilat maror", and you should eat it without reclining, and then afterwards you should take a third piece of the matzah and break it in half, and make a sandwich with the maror in the middle, and you should submerge this sandwich in charoset.
You should fully immerse it: So as to kill the poison that is inside.