That's a baaaad record. They have twice wrapped the record in a sequence element rather than once, so the first three bytes are garbage. If you remove them it works fine:
AttrId: 0x0000 -- ServiceRecordHandle
UInt32: 0x10000
AttrId: 0x0001 -- ServiceClassIdList
ElementSequence
Uuid16: 0x1101 -- SerialPort
AttrId: 0x0004 -- ProtocolDescriptorList
ElementSequence
ElementSequence
Uuid16: 0x100 -- L2CapProtocol
ElementSequence
Uuid16: 0x3 -- RFCommProtocol
UInt8: 0x1
( ( L2Cap ), ( Rfcomm, ChannelNumber=1 ) )
AttrId: 0x0100
TextString (guessing UTF-8): 'PRINTER'
Kudos to them though for finding the one place I don't double check that the element type is as expected. I've put a fix in so we detect the error rather then fail with an IOOBEx.
The fault is more apparent when the record is displayed like this:
0x36, 0x00, 0x30,
0x36, 0x00, 0x2D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x00, 0x09, 0x00, 0x01, 0x35, 0x03,
0x19, 0x11, 0x01, 0x09, 0x00, 0x04, 0x35, 0x0C, 0x35, 0x03, 0x19, 0x01, 0x00, 0x35, 0x05, 0x19,
0x00, 0x03, 0x08, 0x01, 0x09, 0x01, 0x00, 0x25, 0x07, 0x50, 0x52, 0x49, 0x4E, 0x54, 0x45, 0x52
Note that the first three bytes are a duplication of the next three (with the length value of course changed from 45 to 48, ie 0x2D to 0x30)