As far as I can see, the problem is in the usage of <RemoveFolder/> element. If the ‘Directory’ attribute is omitted, it takes the directory of the parent component. In your case, it is a directory with Id=”EFIMonarch”. This explains why you get the warning for the outer directory (ProgramMenuDir), but don’t get it for EFIMonarch directory.
Try replacing:
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
with
<RemoveFolder Id='RemoveProgramMenuDir' Directory='ProgramMenuDir' On='uninstall' />
Also, it is a good idea to be explicit for every RemoveFolder element.
Hope this helps.