Answer
This commonly happens because the framework's own internal proxy user, IFSSYS, hasn't been re-granted access to the newly created package — run BEGIN Installation_SYS.Grant_Ifssys(); END; to re-grant IFSSYS's standard access across all objects, which commonly resolves this exact 'works outside IFS, fails through the IFS client' symptom for a custom package. If that alone doesn't resolve it, the custom package itself may need to be restructured following IFS's own standard package-registration conventions, so it can be properly recognized and granted through Permission Sets/Database Objects rather than only through raw database-level GRANT statements.