The Kendo UI TreeView implementation is read-only. We have had clients in the past who have made their own CRUD implementations using the inherited API from the Kendo UI Data Source.
1) "This means I have to duplicate every action performed on my source array on the datasource
There should be no need to duplicate each operation. You can use the Kendo UI Hierarchical Data Source only. When you need to get the bound array as it is at present, you may call the data source data()
2) "the added items are lost when doing a read() afterwards".
This behaviour often suggests that the create operation has not been synced with the remote endpoint. After inserting a new dataItem in the data source, call the sync()
method to notify the back-end.
3) Adding subitems
To add subitems, traverse the tree and find the target node. Then you may utilise the append(), insertBefore() or insertAfter()
methods of the Kendo UI TreeView (dependent on the concrete scenario).
We have a sample for an update operation of a Kendo UI TreeView, using an external form that may help you get started:
Telerik by Progress