Custom entity api create options list for checkboxes without field api
To store multiple value property values, without the field API, you may find it easier to create a generic extended properties table for one-to-many relationship with the base table.

e.g a table 

Table: my_entity_properties

Columns: entity_id | revision_id | name | value


You can then store the extended properties in that table in the save function for your entity - each field value will be a row with the property name and value pair.
You then load them in the attachLoad function, grouping by the revision_id and property name to load the values for that entity revision.