OK I will raised a support ticket for the legacy rendering problem.
Re the shipping ID, in the field options dialog for this control, I have set both the value AND description fields to the same text string. I thought this was OK as the help text for the value field says "...this can be different to the text or value that is displayed to the user" - so I thought it was also OK for it to be the same? In any case, I have changed it now to be a numeric value - but the SQL error still occurs. BTW - on other order forms that also have the same shipping field, also with a text string as the value, I do not get the SQL error?