The value_template part extracts the value for the sensor’s state. And no matter what it looks like, it’s a string (like all states.)
The json_attributes currently only support extracting top-level JSON fields (like message in your case.) But the good thing about them is they will be dictionaries, not strings, so it’s easy to get at the individual fields after the fact.
About the only thing you can do (using standard sensors, that I’m aware of), is only list message for the json_attributes parameter. (You do need something for value_template, too, even if it’s not something very useful itself.) Then use template sensors to extract the fields from sensor.coles_express_clayton.attributes.message, e.g., sensor.coles_express_clayton.attributes.message.list[3].prices.U91.amount.