In Kunen 10th Edition 2006, it is stated on p188 that the concept of P-name is used to generate "all the sets which can be constructed from G by applying set-theoretic processes definable in M". The construction in Definition 2.5 : $\tau$ is a P-Name (based upon the partial order P) iff
(i) $\tau$ is a relation
(ii) $\forall$ <$\sigma$,p> $\in$ $\tau$ [$\sigma$ is a P-Name $\wedge$ p $\in$ P]
This 'looks' like a straightforwards definition but on some thought it has hidden depths and as a newbie to the subject I will be grateful if anyone knows of any references that fully explain in mathematical detail that is going on e.g. to answer the following types of questions:
q1) P-Names look to be a sort of coding of set theory expressions that can represent objects in Models (e.g. for expressions such as A $ \cap$ B), but the definition includes no direct mention of the set theory expressions that create the P-Name objects they represent.
q2) How do the P-Names have the remarkable property that they definitely represent in M all possible objects in the new model with G added (M[G])? I was looking for some definition of equivalence classes and homomorphisms to prove that a selected set S of P-Names has the property that
each P-Name in S can represent an object in M[G] via VAL whatever G is selected and
that the set of P-Names in S is enough to represent all sets in M[G].
So even though a specific P-Name could evaluate (via VAL) to a different set in M[G] for different G, when all P-names in S are taken into account the full set of elements in M[G] is produced.
q3) If P-Names are coding via some algorithm 'possible' elements of all possible G$_i $, and assuming that $\cup$G$_i $ = P, presumably <$\sigma$,p> means roughly in logical terms "IF p $\in$ G THEN $\sigma$ results" and "if p $\notin$ G then $\sigma$ is ignored". However e.g. the object {1} $\cap$ G in M[G] is produced via a P-Name expression in M of {<$\hat{1}$,p>:p $\in$P} $\cap$ {<$\hat{p}$,p>:p$\in$P} = {<$\hat{1}$,1>} using the standard "$\in$" operation which $\mathbf{remarkably}$ for some reason now isn't concerned whether < A,p> expressions mean "IF ... THEN" but instead "$\in$" treats all the < A,p> expressions as 'definite' and not 'possible' existing objects (a case of a 'definite maybe' !?)
q4) The P-Names only seem to code the property of G $\subset$ P, but none of the other properties such as being a filter or intersecting dense sets, so presumably there is some reason for this?
I don't understand question 1 - what exactly do you not see that you think you should?
Your question 2 makes it sound like $M[G]$ comes first and names are defined later. But that's the wrong way around: by definition, $M[G]$ is the set of the valuations of the names, so there's nothing to explain here - of course everything in $M[G]$ is named by some name in $M$ via $G$, since that's exactly how $M[G]$ is defined.
The beginning of question 3 is basically right: you can think of a name as an "If-then-else" description (appropriately iterated of course). But you seem to be conflating names and the things they name: while the thing described by a name is "contingent" on the generic, the name itself isn't. Remember that names are themselves elements of $M$. The name for $\{1\}\cap G$ you describe, for example, is a perfectly nice element of $M$, and so forth. Put another way: names are definite objects.
However - and I think this will clarify things - the manner in which these definite objects relate via $G$ to their referents is complicated: basic operations on names don't always correspond to those same operations on the valuations. For example, the intersection of two names is not in general a name for their intersection: it will always be a name for subset of their intersection, but it might "undershoot." For example, fix some maximal antichain $A$ in $\mathbb{P}$ not containing $1$, and consider $\mu=\{\langle \emptyset, 1\rangle\}$ and $\nu=\{\langle \emptyset, p\rangle: p\in A\}$; for any $G$ we have $\mu[G]=\nu[G]=\{\emptyset\}$, but $(\mu\cap\nu)[G]=\emptyset$.
Re: your fourth question, your observation is correct: names do not in fact take into account that $G$ is a generic filter. However, their analysis does. Suppose $X$ is any subset of $\mathbb{P}$ (probably outside $M$). We can recursively define $\nu[X]$ for $\nu$ a $\mathbb{P}$-name in $M$ as usual, and we can consider the structure consisting of all those valuations. However, this structure has no reason to be a model of ZFC a priori (or have any of the other nice properties we want).
So really you should think of this as a two-part idea: first the idea of "conditional sets" via names, and second the realization that generic filters in particular make names behave really well. This second observation doesn't come out of nowhere, but while learning this material I think it's important to keep the observations separate.
(Incidentally, the hitting-dense-sets aspect of the generic filter definition should be the only surprising bit. The general intuitive picture is this: we want conditions to describe facts about an imagined object we're building, and we want $G$ to be the set of all the true facts about that object (really $G$ is that object, but meh). If something is true then everything it implies is also true, and this is why $G$ needs to be closed upwards; and no two contradictory things can be simultaneously true, which is why $G$ doesn't contain any two incompatible conditions. The realization, against this backdrop, of how dense sets help shape things is the key to really understanding forcing.)