Updating Node Field using drupal_write_record doesn't show changes until cache flush
When you write directly to the table (which drupal_write_record() does), it bypasses any APIs that are called. As such, you should really only use drupal_write_record() for tables you've created yourself, that don't have any APIs to be bypassed.
In this case, you are better off changing the values in the $node, then calling node_save() on it. This will not bypass any APIs.