Right…
I think you should use 2 triggers:
sensor.office_motion_sensor_temperature above 16
sensor.office_motion_sensor_temperature below 18
and choose you actions based on that.
And then in the choices you can add your conditions again 
This will also prevent the unneccesary triggering on every temperature change 
alias: Office Heating Full
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.office_motion_sensor_temperature
above: 16
id: Below
- platform: numeric_state
entity_id: sensor.office_motion_sensor_temperature
above: 18
id: Above
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- Below
- condition: time
weekday:
- tue
- mon
- wed
- thu
- fri
- condition: zone
entity_id: device_tracker.marc_iphone_2
zone: zone.home
sequence:
- service: switch.turn_on
data: {}
target:
entity_id: switch.office_heater_outlet
- conditions:
- condition: trigger
id:
- Above
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: switch.office_heater_outlet
mode: single
You could still add a trigger to turn off the switch when leaving home, but once the temp is above 18 it will turn off anyway (and stay off) 