As an alternative you may simply create a new functor like this,
struct my_functor_w_df : Eigen::NumericalDiff {};
and then initialize the LevenbergMarquardt instance using like this,
my_functor_w_df functor;
Eigen::LevenbergMarquardt lm(functor);
Personally, I find this approach a bit cleaner.