Graham,
The backgroundColor attribute is not an attribute of Button, so it's normal that you get this error.
The purpose of styles is to define decoration attributes indirectly through a style name.
You should define a style for your buttons defining the backgroundColor attribute, then set the style attribute in programs with:
CALL form.setElementStyle("name", "mystyle")
https://4js.com/techdocs/genero/fgl/devel/DocRoot/User/ClassForm.html#setElementStyleSeb