@Mike_Murray
I don't have any experience with Sybase but I've had similar issues when interfacing with Oracle.
The reason there was that the Oracle instance used UTF-8 encoding. Oracle allows to define character variables with length as number of characters to be stored independent of how much storage a character needs. SAS defines its lengths in bytes. A UTF-8 character can use up-to 4 bytes and though the default behavior was that when transferring data from Oracle to SAS the character lengths in SAS were 4 times what had been defined in Oracle.
There is a set of options available for the Oracle/Access engine to control how the conversion works and as we knew that we're only dealing with English letters we've amended the settings to a 1:1 conversion.
Not sure what Access engine you're using for Sybase and which encoding could create a three fold increase - but it's the place I'd be looking first searching for options for your access engine which allow you to control the character conversion.
... View more