It turned out that the order in which the various promotions were generated determined how clicks were mapped onto piece types, and this was different for promotions resulting from morph and from promoZone. Now it simply uses the type displayed in the square that was clicked.
Thanks.