Thanks yuanzhoulvpi and jerinphilip for your input.
I was using a custom loss function and as it turns out this was the issue - data I was tracking was not being properly detached and this somehow affected the model being able to be fully put back into training mode.
All fixed now!