Hi onix. So, what form are you altering? Is this a custom form, or a form provided by a module?
Also, the implementation of hook_node_update() is not going to work. This hook is invoked AFTER the node has been saved, so moving the field to its rightful place will have no effect, since the node has been saved.
Instead I recommend either adding a custom submit handler (using array_shift so that it's called before other submit handlers), or using hook_node_presave(), which is invoked before the node is saved.
The garbage output you posed looks like json output that hasn't been properly interpreted by the browser - probably because the browser is expecting HTML instead of json. This may have been caused by a number of factors, most likely some interaction with other modules and the fact that the field is in the wrong place when saving.
Also, using hide outside the context of a template: not a good idea. Since you are going to move the field back to its correct place in the node object, you should simply unset the original field before sending the form back to the form builder.