It sounds like you’ve already found a solution to your problem, but in case not, here are my notes on how to do this merge.
I was able to create a 1:1 merge with the 2018 NYCgov Poverty Measure Data and 2018 ACS IPUMS samples at both the household and person-level. In order to merge at the household level, I created a variable equivalent to CBSERIAL in the NYCgov dataset by adding “20180” to the beginning of SERIALNO (while maintaining leading zeros); this should result in a 13-digit numeric variable. Also make sure to subset both datasets to CBPERNUM==1 and SPORDER==1 to keep one record per household. Merging at the person-level required creation of a new person-level serial variable in both datasets by concatenating CBSERIAL and CBPERNUM (for the ACS dataset) and CBSERIAL and SPORDER (for the NYC dataset); the tricky part with these concatenations will be to ensure leading zeros are kept so that the variable results in a 15-digit unique identifier.
If you aren’t able to create the merge with the fix you mentioned or using these tips, please provide more information, including your merge code and the scale of differences in the numbers you are seeing, so that I can help troubleshoot the issue.