I think you are a little confused.
I just tried it:
Dictionary<string, object> d = new Dictionary<string, object>();
for (int ii = 1; ii < 10; ii++)
d.Add((ii * 111).ToString(), ii * 11);
Console.WriteLine(d[d.Keys.ToArray()[0]]);
Console.WriteLine(d.Values.ToArray()[0]);
IList<Dictionary<string, object>> bookmarks = new List<Dictionary<string, object>>();
bookmarks.Add(d);
int i = 0;
Console.WriteLine(bookmarks[i].Values.ToArray().GetValue(0).ToString());
And it compiled and ran perfectly...
So what am I doing that is different from you?