From what i remember the location is correct, because i tested someother things there too before some time.
 
But to be safe i checked the /etc/init/tvheadend.conf and it says:
...existingCode...
script
  [ -r /etc/default/tvheadend ] && . /etc/default/tvheadend
  [ "$TVH_ENABLED" = "1" ] || exit 0
  ARGS="-f"
  [ -z "$TVH_USER"      ] || ARGS="$ARGS -u $TVH_USER"
  [ -z "$TVH_GROUP"     ] || ARGS="$ARGS -g $TVH_GROUP"
  [ -z "$TVH_CONF_DIR"  ] || ARGS="$ARGS -c $TVH_CONF_DIR"
  [ -z "$TVH_ADAPTERS"  ] || ARGS="$ARGS -a $TVH_ADAPTERS"
  [ "$TVH_IPV6" = "1"   ] && ARGS="$ARGS -6"
  [ -z "$TVH_HTTP_PORT" ] || ARGS="$ARGS --http_port $TVH_HTTP_PORT"
  [ -z "$TVH_HTTP_ROOT" ] || ARGS="$ARGS --http_root $TVH_HTTP_ROOT"
  [ -z "$TVH_HTSP_PORT" ] || ARGS="$ARGS --htsp_port $TVH_HTSP_PORT"
  [ "$TVH_DEBUG" = "1"  ] && ARGS="$ARGS -s"
  exec tvheadend $ARGS $TVH_ARGS
end script
So yes, /etc/default/tvheadend ist the right spot for $TVH_ARGS.
I cannot clearly say if your specific "--satip_xml" argument is in the right Spot there or if it should be placed somewhere else but what you can check is, if the /etc/default/tvheadend file it self have the right permissions.
 
The owner and group should be root:root and the Permissions should be 0644.