Post profile Update function with [s2Member-Profile] fails to capture select fields

I’ve written a function to send my custom fields to an external API after a profile is updated from the [s2Member-Profile] page.

I get the user_id:
$user_info = get_userdata($user_id );

Then get the pofile fields I want:
$gender = get_user_field('gender', $user_id);

Then I send them along to my integration and log the changes.

Strangely, this fine for text fields, but not for selects. All my select fields return the value when the profile was loaded instead of showing the changed values.

I’ve tried using profile_update and ws_plugin__s2member_during_handle_profile_modifications and the result is identical for both (the fields themselves do update, so if I submit twice the correct value eventually gets through).

Thanks for any ideas!