Can I use pybtctool with counterpartyd to sign a transaction?

Yes, but it may not work for some particular transactions (maybe because of a bug in pybtctool), when the address isn’t in the local instance of Bitcoin Core.

The transaction should be signed manually (e.g. with the pybtc CLI tool, or any other way - for example using another utility such as (for Ruby developers)).

One tool that’s been reported to work well is bitcoinjs-lib.