Well, I did some more looking on the forums and think I've found the answer. The List of object type A that was being serialized and returned to Flex via blazeds was a class auto-created by jaxws-ri's wsimport tool. It automatically created all fields with protected scope, which was apparently causing the problem. What I don't understand, at all, is why it was only causing a problem with objects nested further within the object structure. Both the List of object type A and List of object type B were declared as protected as well, but they got serialized fine. If anyone has a better understanding of this and can help explain I'd still appreciate the insight!
Unfortunately, AMF serialization is something of a black art. I'd run into multiple issues in the past (working with Granite DS, rather than Blaze--but it's essentially the same thing). I'm not sure about Blaze, but Granite has very verbose logging available if you configure log4j to DEBUG level for org.granite. The other alternative is to attach to your Java process with a debugger (Eclipse makes this fairly automagical), download the Blaze source and configure Blaze as a project in Eclipse, add it to source lookup for your project, and step through the actual serialization to see what's going on. This is moderately complicated to set up, but priceless when it comes to debugging.