Both v2 and free word orders are partially supported in the Grammar Matrix. This means that you can expect a grammar which loads and parses some sentences with both these orders, but the range of sentences which parse may be more limited compared to other orders and you will likely encounter more bugs with free and v2 than you will with other orders.
As for your specific unification failure: the way to debug this is to set up a breakpoint in customize.py at line 617 (word_order.customize_word_order(mylang, ch, rules)) and then step through the execution and see what happens and why. Without doing that, I can see that [ VC + ] is set for head-complement rules by the following lines, for example:
if (aux == 'vini-vc' and aux == 'vo-auxv' ) or wo == 'free':
mylang.add('head-comp-phrase := [ HEAD-DTR.SYNSEM.LOCAL.CAT.VC + ].')
if (aux == 'vfin-vc' and aux == 'ov-vaux') or wo == 'free':
mylang.add('comp-head-phrase := [ HEAD-DTR.SYNSEM.LOCAL.CAT.VC + ].')
There may be other places which do this, too.
One way to reconstruct the logic behind these lines would be to look at the regression tests involving auxiliaries and verb clusters (vc). You can tell from the regression test names.
So if your combination of choices is valid, then you need to modify the logic in word_order.py such that your combination of choices is accommodated but all of the regression tests still pass.