I just stumbled upon this today. Did you found what you were looking for?
I actually have the figures around the equations you mentioned all reproduced, see here: https://empymod.readthedocs.io/en/stable/examples/reproducing/fem_tem.html#sphx-glr-examples-reproducing-fem-tem-py
empymod has both the numerical and analytical solutions for all possible source-receiver combinations for fullspaces and halfspaces. However, the implementation does not follow Ward and Hohmann (which are derived from potentials, I think), but they follow Hunziker et al, 2015 (fullspaces) and Slob et al, 2010 (halfspaces), see https://empymod.readthedocs.io/en/stable/references.html for the full references.
I am happy to help with any questions if you have some.
(Thanks @sgkang09 for pointing to empymod!)