The first 2 things you are describing are normal and basically the granularity of the watering time changes as the value increases. The way it works is as follows:
1) You can set durations of 0 to 59 seconds, after that, seconds are disabled and the granularity becomes minutes
2) You can set minute values so long the total hours are under 3, after that minutes are disabled and the granularity becomes hours
3) You can set the hour value up to 18 in the current firmware however this is changing to 16 hour maximum in firmware 2.1.4 to allow new duration values (sunrise-sunset and sunset-sunrise).
In regard to the last issue with program copy, this sounds like a bug and I will look into it and get back to you.
Update: I tried to perform a copy and subsequent save and never recieved an error. Can you specify which app version you are using (found in the About page accessible via the left side panel).
Update 2: I have tracked the copy program bug down and resolved it. This should work in the upcoming update to the app (1.4.2).
As a work around, I believe the top right button should work on a copy however you have to make some change, like day of week.