Here's a partial answer: to get the actual name of a contain field item, you need to use the "GetLayoutObjectAttribute" function.
This function requires that the container field be given an object name (using View->Object Info ). Then you can use
GetLayoutObjectAttribute("OBJECT_NAME_HERE";"content")
...where "OBJECT_NAME_HERE" is what you called the container field. "content" tells the function you want the name of the object in the container field. (See FMP's help function for other parameters you can use.).
Please note that the results of this calculation should not be stored--recalculate it as necessary. With my version of FMP (10 advanced), if the result is stored, I get nothing. But if it's set to recalculate as necessary, the field name appears.