Multipart form data adding the content-type to the file contents

I'm trying to send a file to a third party API. For some reason the "Content-Type: text/plain" for the file gets added to the file contents. I am not setting any content type myself. If I go into guzzles MultipartStream.php and remove the adding of content type, it works fine. (Obviously because the content type isn't being set then)

I either need a way to force guzzle to not add the header, or figure out why it's added to the file contents rather than interpreted as a header. Code for the request is below. Sending the request from postman seems to work so it makes me think it's something with Guzzle.

$data = [
            'multipart' => [
                [
                    'name' => 'Function',
                    'contents' => 'Upload',
                ],
                [
                    'name' => 'Source',
                    'contents' => 'EDI',
                ],
                [
                    'name' => 'AuthenticationID',
                    'contents' => $this->authentication_id,
                ],
                [
                    'name' => 'File',
                    'filename' => "file.txt",
                    'contents' => fopen('file.txt', 'r'),
                ]
            ]
        ];
        $response = $this->client()->post("https://crapapi.com/crap/upload.svl", $data);