Okay. forget about "oh she gaslighted me". She didn't. just because someone is rude, does not mean they are "gaslighting" you. Its time to set some boundaries.
If a family member rents to you, you have them sign a contract just like a regular tenant.
You may charge them less because they are family, but otherwise treat them like a tenant.
If they would like to move a dog in, its an extra $50 per month.
You either put it in writing that no smoking is allowed, instead of saying "well she knows how i feel", or
put an added fee for smoking. And don't charge next to nothing

If they decide to have a roommate (boyfriend, same gender roommate, no matter, you need the person's name to run a background check) and add more money, but have it in the contract ahead of time so both have the same expectations
They pay a security deposit up front. If they leave the house with just normal wear and tear ( the bathroom is clean, but a few little scuffs on the hallway door, the carpet is a little worn in the main entry way form normal usage), then you put on a fresh coat of paint and give it back. I know a landlord and they paint the entry ways after every tenant. If the place requires more than normal (cleaning the carpet after each tenant is normal to freshen it up even if its left in perfect shape, replacing doors broken in a drunken rage isn't)., then the security deposit is retained or prorated.

I think its both of your faults. You assumed a certain performance from her because she is your sister and she owes you because of the cheap rent, and she didn't think it was a big deal because "you knew she smoked when you rented to her".

If i were you, i would not have excluded her from CHristmas. There are other people there = she would have been on good behavior and lesson learned that you don't make loans or give cheap rent to relatives. She should not be kicked out of the family so to speak because you and she had different expectations