Can I ask why you need to put functions into an "intermediate" container object? Doing what Don Cragun suggested is simpler and standard.
Your efforts will make code maintenance much harder. This may not apply to you, but don't confuse cool with good programming practice. The two are not always congruent.
We all know that different shells behave differently. (And we know that you haven't told us what shell or shells you're using for this problem.)
We all know that we can do some things in shell code a few different ways (or a few thousand different ways) depending on what we are trying to do. (And we know that you haven't told us what you are trying to do other than define functions that have been read from a file into a variable.)
The only thing I see here that is impossible is for us to accurately guess at why you think you have to use this method to define functions and what you are going to do with those functions after you define them.
If you would share with us what you are trying to do instead of telling us how you want to implement a small piece of what you want to do, we might be able to help you find a solution to your problem.
P.S. Did you know that some shells can export functions in addition to exporting variables?
$ ./s1
Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution : Debian 8.7 (jessie)
bash GNU bash 4.3.30
-----
Remove variable v1 and function x1:
_i=' Remove variable v1 and function x1:'
_i=' Remove variable v1 and function x1:'
-----
Create variable:
-----
Variable v1 =
x1() { printf ' Hello, world from x1.\n' ; }
-----
Results, try to execute x1, expect failure:
./s1: line 29: x1: command not found
-----
Source, then execute x1
Hello, world from x1.