How to make edge loops parallel / equidistant?
You can achieve a reasonable accuracy with the Shrinkwrap modifier.


Make a reference surface of  a duplicate of the entire deck: no holes, you will probably need to give it a Subdivision Surface modifier (probably Simple) to make it a high-enough resolution target for projection of the deckhouse roof.
Make a vertex group of those vertices of the deckhouse you wish to conform to the reference surface
Assign a Shrinkwrap Modifier to the deckhouse, restricted to the vertex group


move the reference surface in Z until the deckhouse roof is the distance above the deck you require.

Before:



After:



The exact lengths in the result will depend on the resolutions of the source and target meshes, and the projection method in the shrinkwrap.  

Depending on how you've made your model so far, you may be able to use the bottom surface of your deckhouse as a reference surface, without subdivision - in that case you could project to 'Nearest Vertex' and have a point-to point correspondence.