you may try (vl-load-all) and OnDocActivate event
vl-load-all is good only the first time . . .
. . .
it is not easy to explain . . .
. . .
Defuns are
redefined at run time frequently.
. . .
I cannot load all, all the time a defun is redefined . . .
. . .
When the user switches from
DIMENSIONs to TEXT UTILITIES[2]
all the 25 defuns associated to these 25 buttons,
are REDEFINED at RUN TIME.
. . .
All the time, have I to reload (all) every thing ?
. . .
Just to give you an idea, take a look to the attached images.