She may not even know herself why she doesn't want to sleep in there, but I would try offering as many choices as possible within reason, all of which still keep her in her room. My DD is 3.5 too, and we just finally got her out of the crib, turned it into a toddler bed, and she's now getting up in the middle night, wanting to get into bed with us (however she's also been sick the past couple of weeks so it's possible it has more to do with that too).
Sometimes she decides she doesn't want to sleep in the bed, and she wants to sleep on the floor instead, or on her bean bag chair, so I let her. DH is not crazy about this, but I figure she's fine, and at least she is in her own room instead of taking over our bed (for such a little person, she sure manages to take up a lot of room!). Sometimes she wants the door open, sometimes she's okay with it being closed.
The key thing I picked up in your post though is that eventually you give in, so basically you have taught your daughter that her persistence and throwing a fit pays off - she eventually gets her way. I've begun telling my DD when she gets tucked into bed that she needs to stay in her own room - she always says she doesn't like staying in there but I let her know that I understand, but she still can't always be coming into Mommy's and Daddy's bed. I am finding that sometimes it helps to make my expectations known from the start, rather than getting into a battle at a time when I may not have the strength to stand firm. Some nights it works, but again, we are going through a tough time right now because she's had a bad cold and a painful ear infection, so she's more whiny and out of sorts right now anyway, and less able to cope. Last night she was up 3 separate times and each time she wanted to come into bed with us and each time I said no, and got her back into her own bed, sat with her for a little while, then stepped out. I'm hoping once she is over being sick it'll be easier and life will return to normal.
Maybe you could try a sticker chart - every night that she stays in her room, she earns a sticker, and then when she gets 7 stickers in a row, or a total of 10 stickers, or whatever, she gets a reward.