Ooh… I see. No, dont share global position like that.
First, You should give each player a unique id and pass that along while talking to the others. If you have no authorative server that can assign unique ids (which im assuming since you probably use signalr for peer 2 peer comm) your best bet is to have each client assign its own id using Guid.NewGuid() which has a very high probability to being unique, and passing that along when talking to other clients.
You also need to decouple the way your game works from how it is visualized on screen. So, make a separated representation of all aspects of your game in classes and properties without using anything related to rendering. Add your gamelogic (DrawCard(), Yield(), Raise(), things like that) to those classes by adding methods that alter the gamestate. Everything that changes the ganestate must go through methods ao your gamerules are unambiguously modelled in 1 central place. This is called the game domain model.
Then, have your player input call those methods as a player performs actions.
Finally, create a renderer: a separate piece of rendering code that reads the gamestate from the gamelogic classes you created earlier and renders it (using sprites etc) like you already are doing.
Now, because each client knows its own id, you now can have that renderer decide which cards go where on the screen depending on the player id.