As far as I know, the only textbook reference for this approach, which is Poincare's original approach, is Seifert and Threlfall's text "A textbook of topology". It's available in English translation but the original was in German. Moreover, Seifert and Threlfall's proof isn't as efficient as it could be, since they're working entirely with simplicial homology. It's much more efficient to work with both simplicial homology and CW-cohomology (together with the knowledge that simplicial and CW homology / cohomology are canonically isomorphic via the relation to singular homology / cohomology).
This version of the proof only works in the context where your manifold is triangulable, and here it goes:
The idea of the dual cell decomposition in general goes like this. Let $\Delta_n$ be an $n$-simplex, and let $F$ be a facet of $\Delta_n$, meaning the convex hull of some collection of $\Delta_n$'s vertices.
The dual polyhedral bit corresponding to $F$ is the convex hull of the barycentres of all facets $F'$ of $\Delta_n$ which contain $F$ (including $\Delta_n$ itself). So in a tetrahedron $\Delta_3$, if $F$ was an edge, the dual polyhedral bit would be a quadrilateral that intersects $F$ in a single point.
Given a triangulated manifold $M$, if $F$ is a simplex of the triangulation, the dual cell corresponding to $F$ is the union of all the dual polyhedral bits to $F$ in all the top-dimensional simplices containing $F$. If $M$ is $m$-dimensional and $F$ is $k$-dimensional, a little geometry later and you'll see the dual cell is an $(m-k)$-dimensional cell in a genuine CW-decomposition of $M$. Again, in the 3-manifold case, if $F$ were an edge, the dual cell would be a $2$-cell with a single vertex at its centre, decomposed into squares.
That's the basic idea. From there the proof of Poincare duality is very much "follow your nose". It's a fun chase and I encourage you to try to work it out on your own, rather than looking it up.
Moreover, spend as much time as you can thinking about evaluating a homology class $X$ on the dual of a homology class $Y$ (provided $X$ and $Y$ have complementary dimensions). You'll have to be careful about thinking of the simplicial vs. CW-homology when thinking this through, of course.
For those looking for a 3d model, I recently turned this into a 3d print. The data is available at the link.
The idea is that a cochain $\varphi \in C^n(X)$ is compactly supported if there's a $K \subseteq X$ compact subset of $X$ such that $\varphi|_{C_n(X \setminus K)} = 0$.
Edit a little remark: for every $K$ compact subset of $X$ there's an embedding $i \colon X \setminus K \hookrightarrow X$ which give rise to a injective embedding of chain complexes $i_* \colon C_\bullet(X \setminus K) \to C_\bullet (X)$, so we can think of $C_n(X \setminus K)$ as being a submodule of $C_n(X)$ and to be exact what I meant above by $\varphi|_{C_(X \setminus K)}$ should be written more formally as $\varphi|_{i_*(C_n(X \setminus K))}$.
So compactly supported co-chain of $X$ are those co-chains in $C^\bullet(X)$ that vanish on all the simplexes that have image contained in a subspace $X \setminus K$ (for some $K$ compact subset of $X$), i.e. those simplexes $\sigma \colon \Delta^n \to X$ that factors through the inclusion map $i \colon X \setminus K \to X$.
You can find out more about this in Hatcher's book Algebraic Topology.
Best Answer
Well, there is the cohomology complex with maps $$\delta:H^i(X^{i},X^{i-1}) \to H^{i+1}(X^{i+1},X^i)$$ and there is also the complex with maps $$d^*:\mathrm{Hom}(H_i(X),G) \to \mathrm{Hom}(H_{i+1}(X),G)$$ where $d^*(f)=f \circ d$.
To show an isomorphism, you want to exhibit a family of maps $$f_i:H^i(X^{i},X^{i-1}) \to \mathrm{Hom}(H_i(X),G)$$ where $f_{i+1} \circ \delta=d^* f_{i}$ (so that it commutes with the maps.)