"Bra" is short for "Brassiere," a French word that originally meant "a child's jacket with sleeves." It derives from an Old French word for "arms." Eventually, the word came to refer to the modern undergarment. The French word brassière refers to a baby's vest (undershirt) or lifebelt, underbodice or harness. The word brassière derives from bracière, an Old French word meaning "arm protector" and referring to military uniforms (bras in French means "arm"). This later became used for a military breast plate, and later for a type of woman's corset. The current French term for brassière is soutien-gorge, literally, "held under the neck" or "throat-support". In French, gorge (throat) was a common euphemism for the breast. This dates back to the garment developed by Cadolle in 1905.
The term "brassiere" seems to have come into use in the English language as early as 1893. Manufacturers were using the term by about 1904, Vogue magazine first used it in 1907, and by 1911 the word had made its way into the Oxford English Dictionary. In the 1930s, 'brassiere' gradually came to be shortened to "bra".
Thus, by replacing one word with the other, we go from "a brassiere" (singular) to "a bra" (also singular).
"Panties" derives from the word "pants," which was shortened from the original word "pantaloons," another French word. "Pantaloons" originally referred to a general *style* or *class* of garments either worn in Venice or assumed to have originated there. (That word was further derived from Saint Pantaleon, the patron saint of Venice.)
Again, by replacement, "he's wearning pantaloons" (plural) became "he's wearing pants" (also plural).
This unfortunately doesn't explain why people chose to shorten the term "Pantaloons" to "Pants" rather than "Pant," nor why "Brassiere" wasn't shortened to "Bras" (even though that is the Old French word for "arms."