A highly useful testing command, when you need to find the culprit for a particular behaviour, is RULES. Using it will make Inform display every rule that fires in response to each of your commands. (To show even the rules that are checked but don't apply, use RULES ALL).
If you turn this on and then try to take something from the saddlebag, you'll see that the list is pretty short and that there's an obvious culprit: the 'can't take people's possessions rule'. (In Inform, animals are a kind of person, rather than the other way around.)
Now, if the horse were the only other person in your game, you could just unlist the rule and nobody would be any the wiser. If you have other, non-saddlebagged characters, the thing to do is find that rule in the Standard Rules, copy it into your source, slightly modify it, and get your version to supersede the original:
Code:
This is the equestrians sometimes take people's possessions rule:
let the local ceiling be the common ancestor of the actor with the noun;
let H be the not-counting-parts holder of the noun;
while H is not nothing and H is not the local ceiling:
if H is a person and H is not Mighty Twinklehooves, stop the action with library message taking action number 6 for H;
let H be the not-counting-parts holder of H;
The equestrians sometimes take people's possessions rule is listed instead of the can't take people's possessions rule in the check taking rules.