Handling the interleave is trivial.

AM_RANGE(start, end) AM_READWRITE8(nvram_8bit_r, nvram_8bit_w, 0x00ff)
AM_RANGE(start, end) AM_READWRITE8(led_8bit_r, led_8bit_w, 0xff00)

Then both handlers are called as if it's a linear array of bytes.