This is a pretty common technique, so you are probably just missing something small.
Is this a shared solution? If so, the global field will only store the value for the current session and is reset to default the next time it's opened.
You sure the container field has global storage enabled?
If this is a shared database, you may want to store the image in a special table of one record and either load your global from this record via script when the file opens or use the X operator in a relationship to link your single logo record to all records of the layout's table.