Sorry to resurrect an old thread, but it looks like the simulator was fixed but the compiler wasn't. If you try to build a project for d2charlie, and the project contains a Menu2 resource, it will fail to compile, saying that d2charlie doesn't support it.
This seems like a flaw in the build system in general. If a watch may or may not support a feature, depending on where and when it was sold/updated, I should be able to build as if it was supported, and then check at runtime whether the feature is actually supported. As it stands, I have to exclude the resource itself and exclude the code that loads it, even though the watch may support the feature...
Menu2 works fine for me with a d2charlie in the sum and the 4.0.8 SDK.
As far as the build system, look at using "has".
for example:
hasMenu2=(WatchUi has :Menu2);
Then use hasMenu2 to decide if you use menu or menu2
Also, if you still have a problem, look at using resource overrides based on the device.
resources-d2charlie
See https://developer.garmin.com/connect-iq/core-topics/resources/
where there are overrides based on the language, device, and device family.