Hi Ryan,
Thanks for the report.
Yes, we have demos of TF-DF in TFX, but we have yet to publish it :).
Regarding your first error, can you replace the following:
model(transformed_features)

by the following:
transformed_features_rank2 = tf.nest.map_structure(lambda v : tf.expand_dims(v,axis=1), transformed_features)
model(transformed_features_rank2)

If this works, this indicates that the tensor features are of rank 1, but that the model is exported with input signature of rank 2. Keras runs a tf.expand_dim(axis=1) during training, predict or evaluate calls, but it does not export it to the model’s call (i.e. model(features)). This can cause this type of issues. Neural net users rarely use rank 1 features, so this issue is rarely met. We are working on a better solution there.
An alternative solution would be to inject the expand_dim in the feature transformation.
If this does not solve the issue, can you:

Print the model signature with: model.call.pretty_printed_concrete_signatures().
Print the transformed_features shape i.e. print(transformed_features).

Regarding the FileNotFoundError: Op error. This is due to saved_model_cli being compiled without the TF-DF ops. TF-DF ops are not yet canonical, and therefore, they are not yet injected in pre-compiled binaries. Until this is done, models need to be inspected “manually” (unless you have the courage to re-compile those binaries  ).
A similar error can be met when loading a TF-DF SavedModel in side binaries (e.g. the TFX evaluator [depending on the version of TFX] or the C++ TF Serving infrastructure). In this case, you will have to do the op injection:

In C++ binaries, the OP can be injected by adding a dependency to //tensorflow_decision_forests/tensorflow/ops/inference:kernel_and_op 3.
In Python binaries, the op can be injected by importing TF-DF (i.e. import tensorflow_decision_forests) before loading the model.

Cheers,
M.