Okay, it looks like in order to write to a memory location, you need to erase it first.  However, the nvm_interface.h file does not appear to have an erase_word function or anything like that.  I used erase_page for now, but that's erasing way too much data.