To be able to check if a combo added to ticket you can create a specific ticket state for it. For example when order added you can check if it is a combo and update ticket’s Free Drink
(or whatever else) state to Active
.
So when a juice order added you can check Free Drink
state with a constraint (eg. {TICKET STATE:FreeDrink}, Equals, Active) and mark it as free.
Also you can check Order Portion Changed
event to remove gift when portion becomes Large
.