Argh, thanks for your help, you put me on the right track. acf_get_field_groups doesn’t load local groups but the acf_local class does run a filter which looks for these groups. I was calling acf_get_field_groups directly in my functions.php (while testing) and on init action but that filter hadn’t run yet.
Calling acf_get_field_groups later in the action pipeline (wp / wp_loaded) etc showed the fields.
Thanks for your help.