It did work. you are just misinterpreting the output from Dumper. After your operation is done, the rows you splice references to into TYPE1 appear in both lists. Dumper only prints them out once, printing a reference on successive occurrances of the reference.
the contencts of the hashref into TYPE1, then I would suggest you look at dclone in the Storable package.