Well, I don't know why you need this but I see your Golem Wars map already has what is necessary to detect physical damage [Weep's GUI Damage Detection].
There are in fact 2 ways to do this.
1. Your slow poison method (or any other buff placer). The drawback is giving up the use of standard wc3 orb effects...
2. All spell damage dealt by a dummy unit/system. Upon damage detection, you can find that physical is dealt from non-dummy type unit. Everything else is damaged using dummy unit which you interpret as = spell damage. Make sense?
Problem with your methods
The only thing you can use... is a buff placer (orb effect) if you are unwilling to use other method. That will render the units involved incapable of using standard wc3 orb effects (which can be worked around using this system as well though).
Note that Weep's GUI damage detection runs just before the damage itself is actually dealt (not sure about orb placer though!).
Example: Using the system to detect damage dealt on a target with 500/500 hp,
and damage dealt was 50 (450/500) and you set life = life +50 instantly...
it will still stay 450/500 because it processed while life was still full (it tried to set it to 550/500).
To fix that you save the units involved in an mui hashtable or mui variable array and run a 0.00 timer which once expired,
will do life = life + 50, (in your case, it will check if buff/debuff is on target unit after expiring timer...).
I haven't tested btw, so if Weep's system does in fact detect the buff/debuff placement right away without need of a timer, then no timer is needed and it is really simple... you got your fix.
All in all, a dummy buff is your easiest bet... but no matter how I look at it, you will be giving up orb effects.
Also, can you create orb effect with 0 duration or must it be 0.01? If it's 0.01, I can imagine slight possible errors... but it would rarely occur.
To clarify the second method:
What we will do to detect physical vs spell is make it so all physical damage is done by any unit in the map. Spell damage however is ALL done by unit-type : Dummy Caster unit (a unit you will create to deal all your spell damage and cast all your spells!).
Here is a test map. I created Starfall and made dummy cast it. Now system can detect if damage is spell or physical in map. Of course, it will be a lot more work if you have a lot of spells.
Most spells you just have to reconfigure the damager to be the dummy unit instead of the caster.
Certain things like an immolation spell/item will need more work, eg. dummy will have perma immolation and follow caster.