i recently implemented something like this. I used this as a base and this as a good reference.
in my ipad viewcontroller i have a button that sets up the session
session = [[GKSession alloc] initWithSessionID:@"mySessionId" displayName:[[UIDevice currentDevice] name] sessionMode:GKSessionModeServer];
session.delegate = self;
[session setDataReceiveHandler: self withContext:nil];
session.available = YES;
for when you are ready for clients to connect. in the iphone remote viewcontroller i use the GKPeerPickerControllerDelegate and create a peer session when it finds your server.
for me, walking throught the first guide helped me get connected, and the reference material helped me understand what all was going on.
in your server, you then have your list of peers (like the the objectgraph example) that you can send messages individually to a peer, or to all peers from the server.