Is your custom field xml file missing a few things?
This is an example of a custom field we have on our Accounts object, which is what is pulled from Salesforce directly using the cli:
sf project retrieve start --metadata CustomObject:Account
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>Username__c</fullName>
<caseSensitive>false</caseSensitive>
<encryptionScheme>None</encryptionScheme>
<externalId>false</externalId>
<label>Username</label>
<length>255</length>
<required>false</required>
<trackFeedHistory>false</trackFeedHistory>
<trackHistory>true</trackHistory>
<type>Text</type>
<unique>true</unique>
</CustomField>