Hi.
The Finder can be a bit peculiar sometimes. If there’s only one item in your folder, getting the ‘name of every item’ returns just that item’s name, not a list containing it. Consequently, the repeat will loop through the characters of the name, not the names in a list. You can get round this with an explicit coercion:
tell application "Finder"
set AllF to (name of files of Source) as list
end tell
On the other hand, if you get more than one property at a time from ‘every item’ “ even if there’s only a single item “ each set of property values will be a list:
tell application "Finder"
set {AllF, AllCT, AllFT} to {name, creator type, file type} of files of Source
end tell
-- > {{"Read me XMLLib.html"}, {missing value}, {missing value}}
--> Not: {"Read me XMLLib.html", missing value, missing value}
This is an inconsistency of implementation, so although you need to be aware of it, you don’t need to try and understand it. 
Since you actually want the file types as well, you could get them at the same time as the names and have list results:
set Source to (choose folder) -- the one with the real files
set N to name of (info for Source)
tell application "Finder"
set Dest to make new folder at desktop with properties {name:N & "-Dupes"}
update files of Source
set {AllF, AllCT, AllFT} to {name, creator type, file type} of files of Source
repeat with i from 1 to (count AllF)
make new file at Dest with properties {name:item i of AllF, creator type:item i of AllCT, file type:item i of AllFT}
end repeat
end tell
But note that the files are created with literally no data. They won’t necessarily be “empty documents” that can be opened by the applications with which they’re associated. Ultimately, the method used will depend on why you want to create empty files and what you want to do with them.