Trying to read the section on Poincare duality from Griffiths and Harris is a nightmare. I want to know if there is a place where Poincare duality and intersection theory are done cleanly and rigorously in the order that GH do them (usually, one proves Poincare duality for singular cohomology and then defines the intersection pairing by cup product and proves that (using the Thom isomorphism) that indeed the intersection pairing counts the number of points taken with sign (and convert everything to forms using De Rham's theorem). GH on the other hand define intersection pairing and then proceed further. However, one has to wave their hands at relativistic speeds to make some things work here).

Poincare duality is very clearly treated, with real coefficients, via de Rham cohomology, in Spivak's Differential geometry vol. 1, the idea of using open covers with contractible intersections, anticipating sheaf theory,, apparently being due to Weil; and also in Bott  Tu's Differential forms in algebraic topology. Both are recommended. It is also treated over arbitrary coefficient domains in the appendix to Milnor and Stasheff's Characteristic classes. Anything by Milnor is recommended. If you just visualize a polyhedron, and its first barycentric subdivision, i.e. placing a new vertex in the center of every face, and forming a new face from the union of all new subtriangles adjacent to a given vertex, you may see the duality arising from a triangulation of a manifold. Thus the theorem is a "obvious" generalization of the duality of the Platonic solids. The simplest argument I ever heard was in a conversation between John Morgan and Simon Donaldson, at Bob Friedman's house. John said he had a simple proof of Poincare duality using Morse functions, and Simon replied, while turning his hands over, "of course you just turn the Morse function upside down". If you read the description of the homotopy type of a CW complex in terms of the critical points of Morse functions, say in Milnor's notes on Morse theory, you will learn that a single d cell is added each time we pass a critical point of index d. Since turning a function upside down changes a critical point of index d into one of index nd, where n is the dimension, we are "done", (modulo the non trivial question of tracing the boundary operators, as noted by a comment below). I have not read Milnor's notes on the h cobordism theorem, so I do not know if this is the same proof given there, but it is a book on applications of Morse theory. I would suggest the moral is that a young person could do worse than to learn Morse theory. 


I first learned Poincare duality from Milnor's "Lectures on the hcobordism theorem," published in the Princeton yellow series. It will seem a little old now adays, but it develops the Morse theory from the point of view of geodesic flows, and it was a very intuitive approach for a beginning graduate student. 


GoreskyMacpherson's first paper on intersection homology ("Intersection Homology Theory", Topology vol. 19) treats intersection pairings and Poincare duality in that order. Of course, they are working with more general spaces than manifolds, but from the intersection pairing perspective on homology I think their paper is written at a natural level of generality, so you might well find it useful. 


I will suggest to look at: "Differential Algebraic Topology: From Stratifolds to Exotic Spheres", Graduate Studies in Mathematics, 2010, Matthias Kreck. Here the author defines homology in a completely geometric way as a bordism theory of singular spaces called stratifolds, and he explains intersection product in this setting, relying on transversality results for stratifolds. For example if you consider a smooth proper complex algebraic variety $M^n$ of dimension $n$ and two cycles $W^l$ and $U^{k}$, let us say that these cycles are complex algebraic subvarieties (not necessarly smooths) of $M^n$ they are stratifolds and modulo a transversality argument you can define the intersection product of these cycles as: $$[W^l]\bullet [U^k]=[W^l\cap U^k]\in H_{2n2k2l}(M^n).$$ What I like in this approach is that any homology class is representable by a stratifold and that M. Kreck explains how you can intersect these objects. Another good place to learn about intersection product is Bredon "Topology and geometry" chapter VI section 11, or Dold "lectures in algebraic topology" section "Intersection of homology classes". In these two books they explain how the intersection and cup product are related via the Thom isomorphism. 

