The comments below are from initial testing only and are subject to change based on feedback.
Findings:
The 144 bit requirement means this chip needs to be fed in full 18 LED values. So if you have 52 LEDs, you have to say 54 LEDs in the setup and then just turn the last two off in your code if using the old library. I created a version of the single library that buffers the last part automatically allowing you to use 52 in your code.
Other notes:
The data does not go into the chips the say way. The order of the ports is normal 0 through 17 but the data is sent to each chip backwards. So if you have three chips, the first chip data should be chip 3 and the final chip data should be chip 1. An updated version of the library attached below - replacing the old one.
Updated Library:
Attached is the WS2803Single library:
Update 1) This version will buffer the difference if an increment of 18 LEDs is not used. Note that when you use numPixels() it will return the new LED count, not the value passed in. So if you start with 37 - it is buffered to 54 .. so numPixels() will return 54. In your code you can simply use the same value originally instantiated .. just do not rely on the numPixels method for this unless you want to include buffered LEDs not attached in your patterns.
Update 2) This library sends the data in the correct order (chips backwards - ports forward). This should make using the original library for WS2801 .. the singleWS2801 and this library work with no other change needed in the code outside the class and library names. Tested both SPI and bigbang methods.
I'm trying to get your code to work, but I get the following messages:
strandtest:28: error: 'WS2803Single' does not name a type
strandtest.ino: In function 'void setup()':
strandtest:31: error: 'strip' was not declared in this scope
strandtest.ino: In function 'void loop()':
strandtest:43: error: 'strip' was not declared in this scope
strandtest:45: error: 'strip' was not declared in this scope
strandtest:47: error: 'strip' was not declared in this scope
strandtest:54: error: 'strip' was not declared in this scope