Old English gesælig (happy, fortunate, blessed), related to German selig. Middle English sely slid through innocent, harmless, pitiable, weak, to foolish by the late 16th century. The German cognate stayed holy; English alone ran the word downhill, selig still means blissful.
The moral the decline suggests: in a hard world, blessed reads as naive, naive reads as helpless, helpless reads as stupid. The word's fall is a compressed history of what English-speaking culture thinks of unguarded goodness.
The root *sel- (happiness, favor) has few survivors, solace among them, the comfort given to the afflicted. Silly and solace are estranged siblings: one kept the comfort, one kept the need for it.
Does every virtue word end as an insult, or just the ones about innocence?