The definition of $\mathbf{H}$ is $$ \mathbf{H} = \frac{\mathbf{B}}{\mu_0} - \mathbf{M} $$ where $\mathbf{B}$ is the magnetic field in which the object is immersed in and $\mathbf{M}$ is the magnetisation of the object, i.e. the "field" ($\propto$ to a field) caused by the internal magnetic properties of the object.
If there are no free currents, then $\nabla \times \mathbf{H} = 0$ which means that $\mathbf{H}$ can be expressed a gradient of a scalar. Now, physically, $\mathbf{H}$ is the magnetic field composed by the contribution of free currents of the object (=0) and any external field. If you take the external field to be 0, then you can take $\mathbf{H} = 0$ since there would be no reason as to why it should be non-zero.
So even if $\mathbf{H} = 0$, $\mathbf{M}$ can be non-zero, and it will be non-zero if iron had been previously magnetised.
If you now place the iron piece in the vicinity of a strong magnet, then the domains inside the iron piece will align with the external field and result in a magnetisation $\mathbf{M}$. To get $\mathbf{H}$, you need to superpose $\mathbf{M}$ to the actual $\mathbf{B}$ generated by the strong magnet.
The resutling net magnetic field in the iron piece is going to be stronger than the field caused by the exteral magnet, since iron is ferromagnetic and has a very strong response to external fields (i.e. $\mathbf{M}$ is very big, because all the domains in the iron piece align with it).
extra
The relationship between $\mathbf{M}$ and $\mathbf{H}$ is not trivial for ferromagnets, because it is governed by magnetic hysteresis, but for dia/*para*magnets is just $\mathbf{M} = \chi_m \mathbf{H}$.