[proofplan]
We construct the evaluation assignment by class recursion on the name-rank of $\mathbb{P}$-names. The filter axioms are not needed for the recursion itself, so we work with an arbitrary subset $G\subseteq\mathbb{P}$. At the stage for a name $\tau$, every name $\sigma$ appearing in a pair $(\sigma,p)\in\tau$ has already been evaluated, so the displayed formula defines an actual set by Replacement and Separation applied to the set $\tau$. Uniqueness is proved by the same rank induction: two class assignments satisfying the recursion agree on all lower-rank names, hence give the same value on $\tau$.
[/proofplan]
[step:Construct the value of each name from previously evaluated lower-rank names]
Fix a subset $G \subseteq \mathbb{P}$. For each $\mathbb{P}$-name $\tau$, define its name-rank $\operatorname{rank}_{\mathbb{P}}(\tau)$ by recursion as the least ordinal strictly larger than $\operatorname{rank}_{\mathbb{P}}(\sigma)$ for every $\sigma$ such that $(\sigma,p)\in\tau$ for some $p\in\mathbb{P}$. This least ordinal exists because $\tau$ is a set, so the collection
\begin{align*}
R_\tau:=\{\operatorname{rank}_{\mathbb{P}}(\sigma): \exists p\in\mathbb{P} \text{ such that }(\sigma,p)\in\tau\}
\end{align*}
is a set of ordinals by Replacement, and one may take $\sup R_\tau+1$.
We invoke the class recursion principle on the well-founded class relation $\sigma\prec\tau$ defined by $\sigma\prec\tau$ iff $(\sigma,p)\in\tau$ for some $p\in\mathbb{P}$. This relation is well-founded because $\sigma\prec\tau$ implies
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
Thus it is legitimate to define a class assignment $E_G$ on all $\mathbb{P}$-names by recursion on $\operatorname{rank}_{\mathbb{P}}(\tau)$. Suppose that $E_G(\sigma)$ has already been defined for every $\mathbb{P}$-name $\sigma$ with
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
For every pair $(\sigma,p)\in\tau$, the definition of name-rank gives
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau),
\end{align*}
so $E_G(\sigma)$ is already defined.
Define
\begin{align*}
E_G(\tau):=\{E_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
This is a set: first separate from $\tau$ the subset
\begin{align*}
A_\tau:=\{(\sigma,p)\in\tau:p\in G\},
\end{align*}
and then apply Replacement to the map $(\sigma,p)\mapsto E_G(\sigma)$ on $A_\tau$. Thus the recursion defines a value $E_G(\tau)$ for every $\mathbb{P}$-name $\tau$.
[guided]
Fix a subset $G \subseteq \mathbb{P}$. The point of the rank condition on names is that a name is built only from earlier names. More precisely, define $\operatorname{rank}_{\mathbb{P}}(\tau)$ to be the least ordinal strictly larger than $\operatorname{rank}_{\mathbb{P}}(\sigma)$ whenever $(\sigma,p)\in\tau$ for some $p\in\mathbb{P}$. Why does this ordinal exist? Since $\tau$ is a set, Replacement gives the set of predecessor ranks
\begin{align*}
R_\tau:=\{\operatorname{rank}_{\mathbb{P}}(\sigma): \exists p\in\mathbb{P} \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
The ordinal $\sup R_\tau+1$ is strictly larger than every ordinal in $R_\tau$, and the least such ordinal exists by well-ordering of the ordinals. Therefore, if we are evaluating $\tau$, every name $\sigma$ appearing inside $\tau$ has already appeared at a strictly lower rank.
We now use class recursion on the well-founded class relation $\sigma\prec\tau$, where $\sigma\prec\tau$ means that $(\sigma,p)\in\tau$ for some $p\in\mathbb{P}$. This relation is well-founded because every predecessor has strictly smaller name-rank:
\begin{align*}
\sigma\prec\tau \implies \operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
The recursion is a class recursion, not a set recursion, because the collection of all $\mathbb{P}$-names is generally a proper class. The recursion principle permits us to define a class assignment $E_G$ as long as the value at $\tau$ depends only on values at predecessors of $\tau$.
Assume inductively that $E_G(\sigma)$ has already been defined for every $\mathbb{P}$-name $\sigma$ satisfying
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
Now take any pair $(\sigma,p)\in\tau$. Since $\tau$ is a $\mathbb{P}$-name, $\sigma$ is itself a $\mathbb{P}$-name and $p\in\mathbb{P}$. By the definition of name-rank,
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
Hence $E_G(\sigma)$ is already available before we define $E_G(\tau)$.
We now define
\begin{align*}
E_G(\tau):=\{E_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
This formula defines a set, not merely a class. Indeed, $\tau$ is a set, so Separation gives the set
\begin{align*}
A_\tau:=\{(\sigma,p)\in\tau:p\in G\}.
\end{align*}
On this set, the assignment $(\sigma,p)\mapsto E_G(\sigma)$ is already defined by the induction hypothesis. Replacement therefore gives the image set
\begin{align*}
\{E_G(\sigma):(\sigma,p)\in A_\tau\},
\end{align*}
which is exactly
\begin{align*}
\{E_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
Thus the recursive clause produces a legitimate set at the stage $\tau$.
[/guided]
[/step]
[step:Verify that the recursively constructed map satisfies the displayed formula]
By construction, for every $\mathbb{P}$-name $\tau$,
\begin{align*}
E_G(\tau)=\{E_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
Writing $\tau_G:=E_G(\tau)$ for each $\tau\in V^{\mathbb{P}}$, this becomes
\begin{align*}
\tau_G=\{\sigma_G:\exists p\in G \text{ such that }(\sigma,p)\in\tau\}.
\end{align*}
Therefore every $\mathbb{P}$-name has a value determined by the displayed recursion.
[/step]
[step:Prove uniqueness by induction on name-rank]
Let $F_G$ be another class assignment with domain $V^{\mathbb{P}}$ satisfying the same recursion:
\begin{align*}
F_G(\tau)=\{F_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}
\end{align*}
for every $\mathbb{P}$-name $\tau$.
We prove by induction on $\operatorname{rank}_{\mathbb{P}}(\tau)$ that $F_G(\tau)=E_G(\tau)$. Suppose $F_G(\sigma)=E_G(\sigma)$ for every $\mathbb{P}$-name $\sigma$ with
\begin{align*}
\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau).
\end{align*}
If $(\sigma,p)\in\tau$, then $\operatorname{rank}_{\mathbb{P}}(\sigma)<\operatorname{rank}_{\mathbb{P}}(\tau)$, so the induction hypothesis gives $F_G(\sigma)=E_G(\sigma)$. Hence
\begin{align*}
F_G(\tau)=\{F_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}
\end{align*}
and
\begin{align*}
E_G(\tau)=\{E_G(\sigma): \exists p\in G \text{ such that }(\sigma,p)\in\tau\}
\end{align*}
are the same set. Therefore $F_G(\tau)=E_G(\tau)$.
By induction, $F_G=E_G$ on all of $V^{\mathbb{P}}$. Thus the evaluation recursion has a unique solution, and each value $\tau_G$ exists and is uniquely determined.
[/step]