From my as-yet imaginary book:
fromArray (array $fldarray,
[string $keyPrefix = ’’],
[boolean $setPrimaryKeys = false],
[boolean $rawValues = false],
[boolean $adhocValues = false])
Sets object fields from an associative array. $keyPrefix is an optional prefix that will be stripped from all fields. The other fields are seldom used except in MODx internal code and transport packages.
In your case, you’d probably want $rawValues = true, and setPrimaryKeys = true.
Again, with respect to overwriting, the usual method is to overwrite on upgrade, use a property (parameter) to specify the name of the chunk, and encourage the user to duplicate, rename, and specify the duplicate in the tag if they need to modify the chunk.
If you’re determined not to overwrite them, you can set UPDATE_OBJECT to false in the attributes array in build.transport.php, or you can install the chunk(s) only in the INSTALL portion of a PHP resolver.
BTW, a preliminary version of MyComponent (the monster, tour-de-force build script) is up at GitHub:
https://github.com/BobRay/MyComponent. It has lots of examples for installing just about anything there is (except custom DB tables).