I think the confusion here comes from the fact that SenseTalk has three different kinds of “lists”, and the word “item” only applies to two of them.
A property list isn’t really a “list” of items, it’s a collection of properties, each consisting of a key and a value. So what you really want is to ask for the number of properties (SenseTalk also allows you to ask for the number of keys or values, if that feels more natural to you):
put the number of properties in listA -- you should get 50 this way
put the number of keys in listA -- or like this
put the number of values in listA -- or this
Asking for the number of “items” in something will tell you either the number of “list items” (if the value is an actual list), or the number of “text items” (separated by commas, or whatever the itemDelimiter is set to) if the value is not a list. In your case, listA was not a list, so SenseTalk converted it to a text representation in order to count its text items (which, unfortunately, was not what you wanted!). You could prevent it from doing this by explicitly asking for “list items” instead of “items” – this would report that listA contained 1 list item, since any non-list value can be treated the same as a list of 1 item.
I hope this helps to clarify the situation.