Anywhere within your script, add this line...
CamBamConfig.Defaults.ReloadTreeAfterScript = false
Normally, after a script has finished executing some code is run to reload the drawing tree view (in case the script has changed anything within the drawing).
ReloadTreeAfterScript = false will prevent this happening, so your selections will stay in place.
I also notice the 'after script' code also does a view.RefreshView(), so you could also leave out that line in your script.
The ReloadTreeAfterScript property is not saved in the configuration file, so the next time CamBam is restarted it's value will revert back to 'True'.
Sorry about that one!
Change this line...
view.Select(newselection.ToArray())
to
view.Select(newselection.ToArray(GetType(Entity)))
OR,
you can change
dim newselection as ArrayList = new ArrayList()
to
dim newselection as Generic.List(of Entity) = new Generic.List(of Entity)()
but not both! 
Alleluia!

I knew I've seen a clue how to make a selection editable after a script is used to select objects by some criteria.
Took me half a day of searching though.
Now, if someone can show me how those lists of entity are initialized in Python ...
