I am not sure exactly what you expect from these forums, but IMO, our conversation is not going too well.
You ask many questions without providing much scope and information. We can't look into your head, nor do we know what you are working on. If you ask questions like this, please provide way more information. For example, you seem to be using my ContactManager project. But are you using it as is, or are you building your own application based on my design? Also, how do you execute this code? When do you call GetItem and when do you watch the contact in the debugger?
But more importantly, you seem to be missing some fundamentals with regards to reading the associated articles and more importantly, the associated code and its XML comments. All questions you have asked so far are all in there. Just ask IntelliSense for the methods overloads of GetItem on the ContactPersonManager class and you'll see what I mean (hint: there's one that accepts just an id and one that accepts something more. The XML comments for the extra parameter should explain it all.)
And if that wasn't enough to figure out how it works, it's all in my articles. Check out, among other sections, the part called "The ContactPerson Class - Implementation " in the article http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=419
I don't want to sound rude with this, but I am not your on-line debugger. If you want to make this a success, you have to learn, read, debug and understand the code yourself. Otherwise, it just won't work well enough....