>> writing a serializer/deserializer pair and explicitly saying they are inverses of each other, as opposed to having to implicitly say that in a round-trip property test.
That capability would be very useful. There are many cases where I have had to define serialization and deserialization functions for numerous objects and had to create so much "boilerplate" unit test code like you describe. It made me wish I was using a Lisp with built-in reader and printer functions.
>> being able to say that two data representations are isomorphic under a given transformation, so I can define a function for one transformation and call it on the other.
This strikes me as very Haskell-ish, but could be quite useful to ensure certain properties or invariants.