Whilst your method gets the right answer for my input, I can't convince myself that it's anything other than a lower bound, with no reason to believe that it can be achieved for all inputs.
If I understand your argument correctly, then the position given in
here would take 6 moves where in fact I think 11 is the minimum.
F4 . ... HM ... HeM ... ...
F3 E ... ... ... ... LG LM
F2 . HG ... HeG ... ... ...
F1 . ... ... ... ... ... ...