Does pt-table-checksum work in circular replication environments?

Please check binlog_format on server B. If it is row-based, then that would be the reason for server C to always have identical checksum to B while it should not.