you're doing the right things. you're treating your son like a human. and, you're raising him to be polite and respectful.
I'm the same exact way.
depending on where you're at, i'd take the take completely out of the picture. if you are home, be on top of their playtime and make sure everyone gets a turn. if your niece acts up, you take the toy out of the picture and apologize go everyone that the toy has be leave. i see you dilemma when you're not at your home but at your sister's place b/c that's her territory and her rules.
maybe make more playdates at your house then hers.
when you are at their house, stash some extra toys just for your son that are his. and, when your niece wants to be a bully you can stick up for your son and tell him that what she's doing is not nice, but you can offer him something else to do.
Your niece's parents don't truly believe "she doesnt' know any better" they just don't know what to do. they don't know how to parent when it comes to that sort of stuff and it will bite them in the butt soon.
whenever someone does something rude to my son i explain to him what happened and that i don't want him to ever do that and i hug him and let him know there's nothing wrong with him just some people aren't nice when it comes to sharing.
At the same token, HOWEVER, kids this age DO NOT play together yet. they don't interact like that, at least not for long periods. The world still revolves around them.
Continue to plug away at the values you're instilling, it WILL pay off.