You need to realize how BUILD works. The Second BUILD is picking the edited value 024,04,PD,EDIT=(IIIIIIIIIIT) as input for weekday function and hence the asterisks as the dates may not be valid. You only got lucky where the edited number ended up as a valid date.
You have a very confusing way of getting things done. You are picking 2 fields and they are using only 1 field in the output.
I am guessing that your input fields are as below
pos 24 - 4 bytes of PD field
pos 342 - 4 bytes of Date field
Now just tell me what do you need in the output and we will show you a way to do it.
Use the following control cards which will give you the desired results. I used Y2PAST=2000 as you said all your dates are greater than 2000. If you have 19xx dates then they can also be handled but differently.