mid-14c., "large;" early 15c., "thick," also "coarse, plain, simple," from Old French gros "big, thick, fat; tall; strong, powerful; pregnant; coarse, rude, awkward; ominous, important; arrogant" (11c.), from Late Latin grossus "thick, coarse" (of food or mind), in Medieval Latin "great, big" (source also of Spanish grueso, Italian grosso), a word of obscure origin, not in classical Latin. Said to be unrelated to Latin crassus, which meant the same thing, or to German gross "large," but said by Klein to be cognate with Old Irish bres, Middle Irish bras "big."
Its meaning forked in English. Via the notion of "coarse in texture or quality" came the senses "not sensitive, dull stupid" (1520s), "vulgar, coarse in a moral sense" (1530s). Via notion of "general, not in detail" came the sense "entire, total, whole, without deductions" (early 15c.), as in gross national product (1947). Meaning "glaring, flagrant, monstrous" is from 1580s; modern meaning "disgusting" is first recorded 1958 in U.S. student slang, from earlier use as an intensifier of unpleasant things (gross stupidity, etc.).