Here are a few things to check:
1. The account name must match exactly including case and any punctuation. Chinese banks use all upper-case so sending it to the "Thomas Smith" account will not match up with the ICBC account for "THOMAS SMITH". Too, sending it to "TOM SMITH" will not match up with "THOMAS SMITH". In fact, I've seen some accounts in Chinese banks where the account name would be "THOMASSMITH" (no space). Naturally, sending it to "THOMAS SMITH" would not match up with ICBC account for "THOMASSMITH".
2. For some Chinese banks, the field width for the name is limited to a set number of characters/letters so if you have a real long name, when they set up the account, they may have typed in your whole name, but on the bank's software, the name field, and thus your account name, gets truncated. For example, THOMAS ROBERT IGNATIUS SMITH shows up on the bank's system as "THOMAS ROBERT IGNATIUS SMI". Check the account name on your bank here. (If you have ICBC Internet banking, you can do this by logging in) and carefully note it down, punctuation, spacing and all.
3. This happened to me once: I had an account (ICBC) where they decided to shorten my full name for space purposes and typed it in as "THOMAS R. SMITH". The first time I tried to get a transfer (from another Chinese domestic bank) it wouldn't go through. The payor checked and the money had arrived at ICBC but it hadn't been credited to my account. I went to the ICBC Internet banking site and noticed that the name on the account was written as THOMAS R。SMITH. (Note the period. They were using the "Chinese" "。" not the "regular" "." The payor went her bank, got the money returned from ICBC, sent it back with the "THOMAS R。SMITH" account name and I got it within an hour. So check the punctuation carefully too because in China, . and 。are not the same.
One more thing, for domestic transfers (not sure about international transfers) Chinese banks require the name of the branch office where the account was opened or it won't get to the right branch. Double check the official branch name of the ICBC where you opened the account and make sure the English bank is using that if necessary.
I'm guessing one of these is the reason it's not getting into your account.