Brad,
I think you are right. Because, we have the same problem with Blob's. You can see the allocation Problem in the PBHeap Log (if activated). Requesting a big String or Blob is gambling, where allocating the same in chunks with an Array of Blobs or Strings works.
One thing that I had to learn is, that to concat two BLOB variables, you can use "lbl_data1 += lbl_data2". This operation needs the memory for lbl_data1, the memory for lbl_data2 and the memory for the sum of both.
This Line needs three times as much memory as is actually requested by SPACE for a short time.
lbl_data = BLOB ( SPACE (1024*1024*10), EncodingANSI!)
there is also a big difference between a small GenApp, PFC Application and both running from PB and not as executable.