Adding attribute step does not affect the value or format of an input. It affects what happens when you use the arrows to adjust the time.
TBH, I am not 100% certain what you are trying to do.
Does this help?
Demo flow...
[{"id":"7c5c3d40.626854","type":"ui_template","z":"5f3f2677.c5a0d8","group":"a9584ee2.24eac","name":"","order":1,"width":"8","height":"1","format":"<!-- INSTRUCTIONS...\n* Add as many time inputs as required\n* Set the data-topic attribute unique on each time input\n* When you need to set time from node-red, set the topic to match and the payload to a time string \n* When this node transmits to node-red, the topic will be set to the data-topic you entered\n-->\n\n<div>\n <label> <span style=\"width: 100px\">Start </span>\n <input data-topic=\"start\" \n class=\"my-time\" type=\"time\" step=\"1\" > \n </lable>\n <label> <span style=\"width: 100px\">End </span> \n <input data-topic=\"end\" \n class=\"my-time\" type=\"time\" step=\"1\" >\n </lable>\n</div>\n\n<script>\n (function(scope) {\n console.log(\"in scope\")\n\n scope.$watch('msg', function(msg) {\n if (msg && msg.topic) {\n var timeInput = $('.my-time[data-topic=\"'+msg.topic+'\"]' );\n timeInput.text(msg.payload);\n timeInput.val(msg.payload);\n }\n });\n $('.my-time').change(function(e) {\n var $this = $(this);\n var pl = $this.val();\n var tp = $this.data(\"topic\");\n scope.send({topic: tp, payload: pl})\n })\n })(scope);\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","x":260,"y":540,"wires":[["99a3aef7.c02d9","2db29788.fe97b8"]]},{"id":"ac897c5b.4e01b","type":"inject","z":"5f3f2677.c5a0d8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"start","payload":"09:05:30","payloadType":"str","x":90,"y":520,"wires":[["7c5c3d40.626854"]]},{"id":"99a3aef7.c02d9","type":"debug","z":"5f3f2677.c5a0d8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":410,"y":540,"wires":[]},{"id":"d19c063a.ce1d48","type":"inject","z":"5f3f2677.c5a0d8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"end","payload":"09:15:00","payloadType":"str","x":90,"y":560,"wires":[["7c5c3d40.626854"]]},{"id":"50af8142.7d6de","type":"ui_text","z":"5f3f2677.c5a0d8","group":"a9584ee2.24eac","order":3,"width":"8","height":"1","name":"","label":"Start time entered","format":"{{msg.payload}}","layout":"row-spread","x":330,"y":600,"wires":[]},{"id":"2db29788.fe97b8","type":"switch","z":"5f3f2677.c5a0d8","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"end","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":150,"y":620,"wires":[["50af8142.7d6de"],["d459f6f5.b02e48"]]},{"id":"d459f6f5.b02e48","type":"ui_text","z":"5f3f2677.c5a0d8","group":"a9584ee2.24eac","order":4,"width":"8","height":"1","name":"","label":"End time entered","format":"{{msg.payload}}","layout":"row-spread","x":330,"y":640,"wires":[]},{"id":"a9584ee2.24eac","type":"ui_group","name":"Rulliere","tab":"a4cbd78a.6d5d68","order":1,"disp":true,"width":"8","collapse":false},{"id":"a4cbd78a.6d5d68","type":"ui_tab","name":"Cantiere","icon":"dashboard","disabled":false,"hidden":false}]