After a look and run through the debugger; I'm not sure how the nodal
variable interpolation *ever* worked in the past.  It looks totally
wrong and I can understand why it isn’t working now; I just can't
understand how it ever worked correctly for multi-element block
models.
 
As I see it, it does the following for the interpolation:
 
 * For all blocks

   * For all time steps

     * For all nodal variables
       * Iterate all nodes in this block; map from A->B
       * Write values for *all* B nodes at this step for this variable

   * For all time steps

     * For all element variables
       * Iterate all elements in this block; map from A->B
       * Write values for all elements in this block at this step for this variable
 
This works for element variables since the exodus API can output
elements a block and variable at a time.  For nodes, it doesn't work
and you will end up with the values at the last step for all
nodes/variables except for nodes which are only in the last element
block which seems to be what you are seeing.
 
Fixing this would be a major undertaking and I'm not sure it would get
prioritized (although you are welcome to try).
 
This *should* work OK if you only do a single timestep or if you only
have a single element block.  With a single timestep and multiple
element blocks, there is an issue of what happens if the node is
shared between multiple element blocks -- it will only get the
interpolated value from the last block.
 
Now, what to do...
 * I think that the Percept code can do some mapping from mesh to mesh...
 * Klugy, but can do a timestep at a time and then rejoin all timesteps using `conjoin`
 * Klugy, but can subset down to one block / mesh and then run mapvar on each submesh and then join using `ejoin`
 
Sorry for the bearer of bad news, but hopefully there is a path to get
done what you need...
