The filter for the effect-instant ability doesn't look for nearby enemy units or something. Effect-Instant abilities are usually targeted on the caster, and so the target filters check the caster. You will need some other method, for example an Enumerate Area validator used as autocast validator checking for nearby enemies.
I tinkered around with this a lot before, and I couldn't get it to work. The only way a modify unit effect can affect cooldowns is via the Cost field. And while it seems to be able to refill ability charges, it cannot refill charge time or cooldown time the same way.
However what you can do is use charges instead of the cooldown, set max charges to 1, hide the charge count and make the modify unit effect restore charges.
In that case I will do the the changes to a Single Medivac through triggers: Model Swamp, Increase Life and Energy, and most importantly: Change UI Icon, Wireframe, Group - you are saying these can be changed via actor message - my problem was exactly adding WHICH actor message or action can do that? I went through the list and found no way to change those.
I know the Dark Templar changes some of these properties, but I just checked, and actor messages only change the Portrait, the other stuff like Wireframe and Icon are handled by the Variations for the respective fields. I am not sure, if you can set up the medivac in a similar way and make them always start with variation 1 and then swap to variation 2, while changing all the fields affected by variation.
You can try to explore this, but using a morph into a different unit would probably be easier ;). What prevents you from doing that?
From what I gathered so far, it doesn't seem to be possible. There is an Override Player Options trigger action, but it doesn't affect hotkeys it seems. There doesn't even seem to be a way to check for the currently selected hotkey setup at all. However, I might be wrong, I didn't check extensively yet.
I assume, you are talking about the unit using the PlasmaSurgeImpact model you created earlier?
Some models do not have a hitbox, they cannot be clicked. If you change it to a different model it should work again.
To fix this problem, create a new model, type Generic, call it Hit Test Sphere and change the Art - Model field to HitTestSphere.m3.
Then, create a new actor of type Model, based on Model Animation Style Continuous (with spaces), add a new Event: UnitBirth.YourUnit -> Create and change the Art - Model to use the Hit Test Sphere you just created.
Make sure, that Model Flags - Allow Hit Test is checked (it should be already). Now you should be able to select your unit. You can change the selection radius by adjusting the Scale of the actor.