I think what you are doing is fine, it just takes time for it to sink in. She'll get it. She's still very young.
My DS had a lot of trouble for a while with being aggressive with other kids, hitting, yelling, etc. and he is doing much better now, although lately he has been getting into shoving, which he never did before.
I know this doesn't bode well for my "give it time" advice but trust me, it does get better.
Can I tell a kind of funny story? We were at the play area at the mall last week. There was this other kid there, about the same age as my DS. We had been there maybe 2 minutes, when I saw DS push this other kid. I went over to him, told him the toys there were for everyone to play with, and if he didn't want to share and play nicely with the other kids we would leave. About a minute later I saw him push the kid again. I went over to him and repeated the warning. Now, you would think the other kid would figure out that maybe DS is someone he might want to avoid, but he went over to DS and stood right in front of him, like he was tempting DS to push him again.
I mean, I know DS shouldn't push people no matter what, but come on, kid, take some responsibility for your own safety, don't taunt the tigers! :LOL So of course DS took him up on it and pushed him again, and I picked him up and we left.
Now, the funny part: DS was relating this incident to my mom later that afternoon, and the way he told the story was like this - "We went to the mall, and there was this orange kid there (-he was wearing an orange shirt
), and he heard this thump-thump-thump, and it was Cole, coming over to push him down." :LOL
So I guess he does possess some twisted sense of empathy...