I created an NSTokenField and everything worked great with strings as tokens. When I created a representative class to use instead, I ended up with an error message and a blank token field.

<NSTokenFieldCell: 0x6080003c97e0>: Failed to query display string for a represented object <HMCPhotoTag: 0x608000422460>. Ignoring...

Turns out, I just set the objectValue before I set the delegate. Setting the delegate first meant the token field could transform my objects correctly.