Ok so I figured out my issue. The direction the enemy was headed was being rotated by the global rotation of the enemy before Velocity was calculated. However when I was calling LookAt(direction) I was not rotating that direction. So the enemy was moving in the correct direction, but not looking in the correct direction.
Thanks everyone for the replies!