I don't remember much how this path works. If I recall, you don't have an "active familiar". Instead, you have an active "familiar team" consisting of three of your familiars.
I see that we reject "familiar.php" requests in PokeFam, so we never try to actually take one out of the terrarium.
The "familiar" command will refuse to do anything.
(familiar-related ASH functions WILL try to do stuff, but will let the FamiliarRequest fail the attempt.)
We don't show them in the green side pane or the Gear Changer.
The Maximizer will not considering switching familiars.
We DO maintain your list of available familiars by parsing famteam.php, rather than familiar.php.
Therefore, KoLCharacter.familiars contains all your familiars.
I wonder if making FamiliarData's canEquip() method simply return false if you are in Pokefam is the right solution? That will mark the familiar as unable to be taken from the terrarium, which will make the Daily Deed work as expected. It should not effect whether or not a particular familiar is in your list of familiars.
I'll try that.