OK, I fixed the Check tree for Give Food, but the Action tree seems to want the food's object ID as a parameter, and afaik interactions can't receive parameters under any normal circumstance. The ID it wants is the object in the sim's slot (carrying), but it acts as if it might not be as a check indicates later (checks if the object in the parameter is being held by the sim). The ID could also be provided by "local #4" from the check tree, but there's no way that can be a reliable rule for this.
There's the interaction mask flag "Available when carrying" that might trigger this behaviour. I also don't implement checks that would normally stop you from doing things while carrying things...