I wondered why such a __ like Mary had fallen for such a jerk like Tom.
I thought of sweetheart but I think the word is more associated to "attractive" woman.
I would suggest the word angel, which is more often than not used of women and girls in precisely this manner:
A person of exemplary conduct or virtue.
Sweetie alone is also often used for romantic relations, but calling someone a "real sweetie" is almost always used to mean they are nice, good-natured, or friendly.
"That cashier was a real sweetie, she was so helpful and never stopped smiling!"
"You should meet my cousin Verdelia, she's a real sweetie, and she's single."
"I'd like to know