Why u guys make it so difficult? No need for suplies with selling, here is a simple trigger that always works:
Sell
Events
Unit - A unit owned by Player 1 (Red) Finishes training a unit
Unit - A unit owned by Player 2 (Blue) Finishes training a unit
Unit - A unit owned by Player 3 (Teal) Finishes training a unit
Unit - A unit owned by Player 4 (Purple) Finishes training a unit
Unit - A unit owned by Player 5 (Yellow) Finishes training a unit
Unit - A unit owned by Player 6 (Orange) Finishes training a unit
Unit - A unit owned by Player 7 (Green) Finishes training a unit
Unit - A unit owned by Player 8 (Pink) Finishes training a unit
Unit - A unit owned by Player 9 (Gray) Finishes training a unit
Unit - A unit owned by Player 10 (Light Blue) Finishes training a unit
Conditions
(Unit-type of (Trained unit)) Equal to Sell
Actions
Special Effect - Create a special effect at (Position of (Triggering unit)) using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
Unit - Remove (Triggering unit) from the game
Unit - Remove (Trained unit) from the game
Player - Add (Point-value of (Triggering unit)) to (Owner of (Trained unit)) Current gold
Game - Display to (Player group((Owner of (Trained unit)))) the text: ((|c0000cdf9You recieved |r + (String((Point-value of (Triggering unit))))) + (|c0000cdf9 gold for selling a |r + (Name of (Triggering unit))))
Sell can be any unit, just take a footman and rename it to sell, put the right icon etc. And put every tower to train the "sell" unit.
Modifie the point value of each tower to the number which u want it to be sold.
Example: tower costs 50 gold, u want it to be sold for 50% of its value, then u put the towers point value to 25.
As for the second question, why not just use command aura? Modifie it to affect only the tower not surrounding units.