could try throwing your print_r($_POST) into cp.publish.php in the submit_new_entry function to see exactly what is making it to the publish code… I know that some posted variables get unset along the way, though your custom fields shouldn’t get touched I don’t think.
Good idea might just try that. Actually I’ve just noticed that I didn’t mention that this is actually the status of the entry that I’m trying to set. Not really sure why it doesn’t pick up the value when checked though.