wp_editor doesn’t save styling

You are stripping all HTML tags before saving principle_duties.

sanitize_text_field()

This function strips all HTML tags, so the value being stored has no HTML. That’s why it’s coming out as totally plain text.

To sanitize wp_editor I would use wp_kses().

See here on how to use it: https://codex.wordpress.org/Function_Reference/wp_kses

For the allowed HTML tags, you can simply pass the global variable $allowedposttags which I believe would be the same way WordPress does things with it’s editor in posts/pages’ content.