Let us answer your query by addressing some of your comments and your final thoughts.
The reason is because from my understanding, the pseudo-inverse only exists under very specific circumstances.
In fact, the pseudo-inverse always exists and it is unique for any matrix. In particular, if $A\in\mathbb{R}^{m\times n}$, then the following properties hold: $AA^\dagger=P_{\operatorname{ran}A}$ and $A^\dagger A=P_{\operatorname{ran}A^\dagger}$, where $P_C$ denotes the orthogonal projection to the set $C$.
Namely, $n>m$ and $\operatorname{rank}(A)=m$, for which $A^\dagger = A^\intercal(AA^\intercal)^{-1}$, or $m>n$ and $\operatorname{rank}(A)=n$, $A^\dagger = (A^\intercal A)^{-1}A^\intercal$, or $\operatorname{rank}(A)=m=n$ for which $A^\dagger=A^{-1}$.
These are examples of cases where the pseudo-inverse can be computed by an "easy" formula. In general, one can compute it using the SVD. If $A=U\Sigma V^\intercal$ is its singular value decomposition, then $A^\dagger=V\Sigma^\dagger U^\intercal$, where $(\Sigma^\dagger)_{ii}=1/\Sigma_{ii}$ if $\Sigma_{ii}\neq0$ and zero otherwise.
Is the claim true?
Based on the exact formulation given in the title, it is not true. The implication ($\Rightarrow$) always holds.
Proof of ($\Rightarrow$): Starting from $Ax=b$, we apply the pseudo-inverse on both side of the equation to get $A^\dagger Ax=A^\dagger b$. Now, recall that $A^\dagger A=P_{\operatorname{ran}A^\dagger}$. Another property of the pseudo-inverse is that $\operatorname{ran}A^\dagger=\operatorname{ran}A^*=(\ker A)^\perp$. Hence, $A^\dagger A=P_{(\ker A)^\perp}=I-P_{\ker A}$, where $I$ is the identity matrix. Denoting $v:=P_{\ker A}(x)\in\ker A$, we get that $A^\dagger b=A^\dagger Ax=(I-P_{\ker A})(x)=x-v$. $\square$
If we follow the same reasonings in ($\Leftarrow$) we get that, from $x=A^\dagger b+v$ and applying $A$ on both sides, $Ax=AA^\dagger b+Av$. On the one hand, since $v\in N(A)$, then $Av=0$. On the other hand, $AA^\dagger=P_{\operatorname{ran}A}$. Thus, we obtain the equation:
$$Ax=P_{\operatorname{ran}A}b.$$
From the statement, it is not assumed that $b\in\operatorname{ran}A$, so it may happen that $P_{\operatorname{ran}A}b\neq b$.
is there some way to fix it?
If we assume that $b\in\operatorname{ran}A$, then the claim of your title is true. This can be achieved, for example, if $A$ is surjective, i.e., $n>m$ and $\operatorname{rank}(A)=m$.
Is it possible that the rank condition is always implicitly true?
After this analysis, we conclude that it is not. Considering your example $A=0$, then $A^\dagger=0$. If $b\neq 0$, then it is true that $x=A^\dagger b+v=v\in N(A)$ and thus, $Ax=0\neq b$.
Remarks: Some good references for pseudo-inverses are Chapter II of Generalized Inverses of Linear Operators by Groetsch and Section 3.2 of Convex Analysis and Monotone Operator Theory in Hilbert Spaces (2nd Edition) by Bauschke and Combettes. Both develop the pseudo-inverse problem in Hilbert spaces, although they can be translated to matrices really easily. Also, notice that the equation $Ax=P_{\operatorname{ran}A}b$ is the fundamental idea behind $A^\dagger$ and it is treated in both references.